2014-02-18 608 views
1

我用imshowpair來比較兩張灰度圖片。我用'green-magenta' ColorChannel來顯示差異。
我有兩個問題:用matlab比較兩張圖片

  1. 一些的兩張照片之間的差異非常小。我如何縮放ColorChannel以顯示更小的色彩差異?
  2. 我可以隱藏原始圖像以更好地看到顏色嗎?

回答

0

您可以在imagesc圖中使用對數標度。

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

看看這個鏈接:http://www.mathworks.fr/matlabcentral/newsreader/view_thread/237161

+0

如果我使用* log *,顏色的強度不會提高。 – user3323346

+0

如果我使用* log *,我無法再完美地重疊圖片。我能否以同樣的方式保存imregister函數的參數以重疊它?

我用下面的代碼:

p_00 =日誌(雙(imrotate(dicomread( 'dci_00.dcm'), - 90)));
p_90 = log(double(dicomread('dci_90.dcm')));
figure,imshowpair(p_90,p_00)
[optimizer,metric] = imregconfig('multimodal');
optimizer.MaximumIterations = 1000;
movingRegistered = imregister(p_90,p_00,'affine',optimizer,metric);
figure,imshowpair(movingRegistered,p_00)
user3323346

+0

這不會幫助OP處理他的'imshowpair'問題。 –

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)') 

您也可以使用發現找到變化的子集,並處虛假z值的增加來提高知名度。