如何比较两种不同的彩色图像?

时间:2013-12-06 12:45:05

标签: matlab colors comparison

我想比较相同尺寸的两张图像(RGB图像)。我们如何比较颜色信息。 请提出您的想法...感谢您的帮助。

2 个答案:

答案 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