用matlab比较两幅图片

用matlab比较两幅图片,matlab,Matlab,我曾经比较过两张灰度照片。我使用了'green-magenta'颜色通道来显示差异。 我有两个问题: 这两张照片之间的一些差异非常小。如何缩放颜色通道,使其显示的细微差异更加丰富多彩 我可以隐藏原始图像以更好地查看颜色吗 您可以在imagesc绘图中使用对数比例 % Plot the data I = double(imread('image.tif')); imagesc(log(I)) colormap gray 查看此链接:当我处理灰度图像的变换时,我需要将结果与原始结果进行比较。我发现

我曾经比较过两张灰度照片。我使用了
'green-magenta'
颜色通道来显示差异。
我有两个问题:

  • 这两张照片之间的一些差异非常小。如何缩放颜色通道,使其显示的细微差异更加丰富多彩
  • 我可以隐藏原始图像以更好地查看颜色吗

  • 您可以在
    imagesc
    绘图中使用对数比例

    % Plot the data
    I = double(imread('image.tif'));
    imagesc(log(I))
    colormap gray
    

    查看此链接:

    当我处理灰度图像的变换时,我需要将结果与原始结果进行比较。我发现制作一个由原始图像、最终图像、差分(减法)和差分向量的cdf组成的四个子图非常有用

    如果大部分差异图像为零,则可以在曲面图中用“NaN”代替它。这将仅显示非零值

    百分比差异也很有用。这通常会进行小的更改,并缩放它们以获得可见性

    所以你可以有你的叠加图像,然后一个不同的图像作为相同图形的子图

    示例代码:

    I = fitsread('solarspectra.fts');
    I = mat2gray(I);
    I2 = imrotate(I,-1,'bilinear','crop');
    
    d=(I(:)-I2(:));
    
    figure(1); clf
    subplot(2,2,1)
    imshow(I)
    colorbar
    title('Original')
    
    subplot(2,2,2)
    imshow(I2)
    colorbar
    title('New')
    
    subplot(2,2,3)
    imshow(I-I2)
    colorbar
    title('Difference')
    
    subplot(2,2,4)
    cdfplot(d)
    title('eCDF(diff)')
    

    您还可以使用“查找”来查找更改的子集,并施加虚假的z值增加以提高可见性。

    如果使用“日志”,颜色的强度不会提高。如果使用“日志”,则无法再完美地重叠图片。我可以保存imregister函数的参数,以便以后以相同的方式重叠它吗

    我使用了以下代码:

    p_00=log(double(imrotate(dicomread('dci_00.dcm'),-90))
    p_90=log(双精度(dicomread('dci_90.dcm'))
    图,imshowpair(p_90,p_00)
    [优化器,度量]=imregconfig('multimodal')
    optimizer.MaximumIterations=1000
    movingRegistered=imregister(p_90,p_00,'仿射',优化器,度量)
    图,imshowpair(movingRegistered,p_00)
    这对OP的
    imshowpair
    问题没有帮助。