我想比较相同尺寸的两张图像(RGB图像)。我们如何比较颜色信息。 请提出您的想法...感谢您的帮助。
答案 0 :(得分:1)
在评论中,您说“我想比较两张图片以了解它们是否相同(颜色和结构都是相同的)”,因此您可以轻松地得到是/否答案:
isequal(I1,I2)
现在,如果您想了解有关差异的更多详细信息(例如,强度,颜色,像素),则需要指定内容。但是,要比较结构而不考虑颜色信息(色调和饱和度),您可以使用rgb2gray
将每个图像转换为灰度,并在强度空间中进行比较。
如果您想知道哪些像素不同,请使用find
:
[differentRows, differentCols] = find(I1gray~=I2gray);
也许你想比较色调和饱和度(再次,颜色信息)而不考虑强度?使用rgb2hsv
将每个图像转换为HSV并比较H和S平面:
I1hsv = rgb2hsv(I1); I2hsv = rgb2hsv(I2);
diffH = abs(I1hsv(:,:,1)-I2hsv(:,:,1));
diffS = abs(I1hsv(:,:,2)-I2hsv(:,:,2));
有很多方法可以比较两个图像。希望这有助于您入门。
答案 1 :(得分:0)
在MATLAB中,如果要比较两个图像 I1 和 I2 的强度值,可以使用imsubstract。
imsubtract(I1, I2); %Show if the two intensity images are identical