Create a mask for different values
2 ビュー (過去 30 日間)
古いコメントを表示
I want to subtract two images and show the results in another figure. For instance, if the subtraction matrix has 0 value indicate the elements with black, if it has negative value show them with red and if it has positive value show with blue. How can I do that?
0 件のコメント
採用された回答
Walter Roberson
2021 年 2 月 17 日
%sample data
firstImage = imread('cameraman.tif');
secondImage = imresize( rgb2gray( imread('flamingos.jpg') ), size(firstImage));
%assuming grayscale images
imgdiff = double(firstImage) - double(secondImage);
n0p = sign(imgdiff); %-1 for negative, 0 for equal, 1 for positive
%add 2 to n0p to get a 1-based index
cmap = [1 0 0; 0 0 0; 0 0 1]; %red, black, blue
diffImg = reshape(cmap(n0p+2,:), size(imgdiff,1), size(imgdiff,2), 3);
%show it off
subplot(3,1,1)
imshow(firstImage);
title('cameraman')
subplot(3,1,2)
imshow(secondImage);
title('flamingos')
subplot(3,1,3)
imshow(diffImg);
title('color difference image')
4 件のコメント
Walter Roberson
2021 年 2 月 24 日
%sample data
firstImage = imread('cameraman.tif');
secondImage = imresize( rgb2gray( imread('flamingos.jpg') ), size(firstImage));
%assuming grayscale images
imgdiff = double(firstImage) - double(secondImage);
n0p = sign(imgdiff); %-1 for negative, 0 for equal, 1 for positive
%add 2 to n0p to get a 1-based index
cmap = [1 0 0; 0 0 0; 0 0 1]; %red, black, blue
diffImg = reshape(cmap(n0p+2,:), size(imgdiff,1), size(imgdiff,2), 3);
%show it off
subplot(3,1,1)
imshow(firstImage);
title('cameraman')
subplot(3,1,2)
imshow(secondImage);
title('flamingos')
subplot(3,1,3)
imshow(diffImg);
title('color difference image')
hold on
names = {'negative', 'equal', 'positive'};
for K = 1 : 3
L(K) = plot(nan,nan,'s', 'markeredgecolor', cmap(K,:), 'markerfacecolor', cmap(K,:));
end
hold off
legend(L, names, 'location', 'eastoutside')
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Orange についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!