两张图片的差异百分比

时间:2014-10-12 03:35:51

标签: matlab

我想比较两个' jpg'图片。我使用了' imshowpair'这样做的功能。但我需要将差异作为百分比值。我该怎么做?请帮帮....

img1 = imread('3.jpg');
img2 = imread('4.jpg');

gr1 = rgb2gray(img1);
gr2 = rgb2gray(img2);

ed1 = edge(gr1,'canny');
ed2 = edge(gr2,'canny');

comp1 = imshowpair(ed1,ed2,'diff');

1 个答案:

答案 0 :(得分:0)

可以通过各种方式比较相同大小的任意两张图片IJ;可以使用大量的相似性和相异性度量(余弦度量,互相关,梯度互相关,互信息等)。

在您的情况下,我理解您的问题的方式是"两个图像中的像素比例是多少?#34;。对于这个问题,答案是:

d = sum( abs(I(:)-J(:)) > eps ) / numel(I);

但要明白这是一个相当弱的比较指标。 例如,它并没有告诉你图像在不相等的地方有多么不同

这可以改进(例如通过计算平均差异),并且可以扩展到IJ不具有相同大小的情况(例如,首先调整它们的大小,或者比较取而代之的是相等大小的随机补丁对。