我想比较两个' 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');
答案 0 :(得分:0)
可以通过各种方式比较相同大小的任意两张图片I
和J
;可以使用大量的相似性和相异性度量(余弦度量,互相关,梯度互相关,互信息等)。
在您的情况下,我理解您的问题的方式是"两个图像中的像素比例是多少?#34;。对于这个问题,答案是:
d = sum( abs(I(:)-J(:)) > eps ) / numel(I);
但要明白这是一个相当弱的比较指标。 例如,它并没有告诉你图像在不相等的地方有多么不同。
这可以改进(例如通过计算平均差异),并且可以扩展到I
和J
不具有相同大小的情况(例如,首先调整它们的大小,或者比较取而代之的是相等大小的随机补丁对。