sta*_*ion 6 python image-comparison image-processing computer-vision python-2.7
我正在研究一个项目,其中我需要比较两个图像.任何人都可以帮我一个方法来做到这一点.通过图像的方式是一个软件的截图.我想检查两个图像是否相同,包括图像中显示的数字和字母(软件的屏幕截图).
有以下方法进行适当的比较.
为了测量两个图像的相似程度,您可以计算图像之间差异的均方根(RMS)值.如果图像完全相同,则该值为零.以下函数使用差函数,然后根据结果图像的直方图计算RMS值.
# Example: File: imagediff.py
import ImageChops
import math, operator
def rmsdiff(im1, im2):
"Calculate the root-mean-square difference between two images"
h = ImageChops.difference(im1, im2).histogram()
# calculate rms
return math.sqrt(reduce(operator.add,
map(lambda h, i: h*(i**2), h, range(256))
) / (float(im1.size[0]) * im1.size[1]))
Run Code Online (Sandbox Code Playgroud)
确定两个图像是否具有完全相同内容的最快方法是获得两个图像之间的差异,然后计算该图像中非零区域的边界框.如果图像相同,则差异图像中的所有像素均为零,并且边界框函数返回"无".
import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16698 次 |
| 最近记录: |