Matlab 如何比较两个不同颜色的图像?

Matlab 如何比较两个不同颜色的图像?,matlab,colors,comparison,Matlab,Colors,Comparison,我想比较两个相同大小的图像(RGB图像)。我们如何比较颜色信息。 请给出您对此的想法…感谢您的帮助。在MATLAB中,如果您想比较两幅图像的强度值I1和I2,可以使用 在评论中,您表示“我想比较两幅图像,以了解它们是否相同(颜色和结构)”,因此您可以通过以下方式轻松获得是/否答案: isequal(I1,I2) 现在,如果您想了解有关差异的更多详细信息(例如,强度、颜色、像素),您需要指定什么。但是,要在不考虑颜色信息(色调和饱和度)的情况下比较结构,可以使用rgb2gray将每个图像转换为灰

我想比较两个相同大小的图像(RGB图像)。我们如何比较颜色信息。
请给出您对此的想法…感谢您的帮助。

在MATLAB中,如果您想比较两幅图像的强度值I1I2,可以使用


在评论中,您表示“我想比较两幅图像,以了解它们是否相同(颜色和结构)”,因此您可以通过以下方式轻松获得是/否答案:

isequal(I1,I2)
现在,如果您想了解有关差异的更多详细信息(例如,强度、颜色、像素),您需要指定什么。但是,要在不考虑颜色信息(色调和饱和度)的情况下比较结构,可以使用
rgb2gray
将每个图像转换为灰度,并在强度空间中进行比较

如果要知道哪些像素不同,请使用
查找

[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));

有很多方法可以比较两幅图像。希望这能帮助你开始。

你到底想比较什么?这真的只是颜色信息吗,比如访问像素的RGB值。请告诉我们更多关于您的要求。如果它只是一个像素,则可以使用普通数组比较来访问它,否则如果要比较整个图像,则应使用循环将每个对应的像素与不同的图像进行比较。我想比较两个图像,以了解它们是否相同(颜色和结构)。我想将整个RGB图像与另一个RGB图像进行比较。我们可以试试直方图匹配吗。如果是这样,怎么做?从这个结果我们如何解释图像之间的色差?你说的色差是什么意思?你能用1个像素来显示操作吗?
I1hsv = rgb2hsv(I1); I2hsv = rgb2hsv(I2);
diffH = abs(I1hsv(:,:,1)-I2hsv(:,:,1));
diffS = abs(I1hsv(:,:,2)-I2hsv(:,:,2));