Image MATLAB如何将一个图像放到另一个图像上?

Image MATLAB如何将一个图像放到另一个图像上?,image,matlab,image-processing,Image,Matlab,Image Processing,我有一个形象 我使用fftn函数获得了它的纯相位重建图像 我的目标是 使用给定图像的纯相位重建,我将只得到边和线 然后我想在纯相位重建图像中用红色或蓝色来给这些线和边上色 然后,我想把这个“彩色”图像放在原始图像上,这样原始图像的边缘和线条可以分别用红色或蓝色进行高亮度处理 但是当我运行代码时,我得到以下错误 '下标索引必须是实正整数或逻辑数 sagar_图像中的错误(第17行) 叠加(ph)=255;' 那我该怎么办 clc; close all; clear all; img=imrea

我有一个形象

我使用fftn函数获得了它的纯相位重建图像

我的目标是

  • 使用给定图像的纯相位重建,我将只得到边和线

  • 然后我想在纯相位重建图像中用红色或蓝色来给这些线和边上色

  • 然后,我想把这个“彩色”图像放在原始图像上,这样原始图像的边缘和线条可以分别用红色或蓝色进行高亮度处理

  • 但是当我运行代码时,我得到以下错误

    '下标索引必须是实正整数或逻辑数

    sagar_图像中的错误(第17行) 叠加(ph)=255;'

    那我该怎么办

    clc;
    close all;
    clear all;
    
    img=imread('D:\baby2.jpg');
    figure,imshow(img);
    img=rgb2gray(img);
    
    fourier_transform=fftn(img);%take fourier transform of gray scale image
    
    phase=exp(1j*angle(fourier_transform));
    phase_only=ifftn(phase);%compute phase only reconstruction
    figure,imshow(phase_only,[]);
    
    ph=im2uint8(phase_only);%convert image from double to uint8 
    superimposing = img;
    superimposing(ph) = 255;  
    figure,
    imshow(superimposing,[]), 
    
    叠加(ph)=255可能意味着- 1.ph值包含要绘制为白色的叠加指数(255)。 2.ph是一个与叠加大小相同的“逻辑”图像,在ph中计算为“真”的每个像素在叠加时都会被涂成白色

    你的意思可能是:

    threshold = 0.2;
    superimposing(real(phase_only) > threshold) = 255;
    
    如果要融合这两幅图像并在另一幅图像上看到它们,请使用imfuse:

    imshow(imfuse(real(phase_only), img, 'blend'))
    
    叠加(ph)=255可能意味着- 1.ph值包含要绘制为白色的叠加指数(255)。 2.ph是一个与叠加大小相同的“逻辑”图像,在ph中计算为“真”的每个像素在叠加时都会被涂成白色

    你的意思可能是:

    threshold = 0.2;
    superimposing(real(phase_only) > threshold) = 255;
    
    如果要融合这两幅图像并在另一幅图像上看到它们,请使用imfuse:

    imshow(imfuse(real(phase_only), img, 'blend'))
    

    先生,仅相位重建图像仅包含线条和边缘。因此,通过将此图像叠加到婴儿的原始图像上,我可以在原始图像中标记(下划线)边缘和线条。但我使用阈值图像无法获得这样的结果,仅相位重建图像仅包含线条和边缘。因此,通过将此图像叠加到婴儿的原始图像上,我可以在原始图像中标记(下划线)边缘和线条。但我使用thresholdingsir无法获得这样的结果,仅相位重建图像仅包含线条和边缘。因此,通过将此图像叠加到婴儿的原始图像上,我可以在原始图像中标记(下划线)边缘和线条。但是,使用阈值处理无法获得这样的结果