用matlab比较两张图片

时间:2014-02-18 12:23:17

标签: matlab

我用imshowpair来比较两张灰度图片。我使用'green-magenta' ColorChannel来显示差异 我有两个问题:

  1. 两张图片之间的一些差异非常小。如何缩放ColorChannel,它显示的小差异更加丰富多彩?
  2. 我可以隐藏原始图像以更好地查看颜色吗?

2 个答案:

答案 0 :(得分:1)

当我处理灰度图像的变换时,我需要将结果与原始图像进行比较。我发现制作一个包含四个子图的图形,包括原始图像,最终图像,差异(减法)和差异向量的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)')

您也可以使用find来查找更改的子集,并强制增加错误的z值以提高可见性。

答案 1 :(得分:0)

您可以在imagesc图中使用对数刻度。

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

查看此链接:http://www.mathworks.fr/matlabcentral/newsreader/view_thread/237161