比较两个图像/图片,并标记差异

马克·K

我正在学习比较两个图像/图片。我发现该帖子以python / linux方式比较两个图像非常有用,并且我对该技术有一些疑问。

问题1:

帖子显示了比较2张图片/图像的方法。可能最简单的方法是:

from PIL import Image
from PIL import ImageChops

im1 = Image.open("file1.jpg")
im2 = Image.open("file2.jpg")

diff = ImageChops.difference(im2, im1).getbbox()

print diff

当我有2张相似的图片并在上面运行时,它给出结果:

(389, 415, 394, 420)

这是两张图片之间存在差异的图片位置。所以我的问题是,是否可以在图片上标记差异(例如,画一个圆)?

问题2:

import math, operator
from PIL import Image
def compare(file1, file2):
    image1 = Image.open(file1)
    image2 = Image.open(file2)
    h1 = Image.open("image1").histogram()
    h2 = Image.open("image2").histogram()

    rms = math.sqrt(reduce(operator.add, map(lambda a,b: (a-b)**2, h1, h2))/len(h1))

if __name__=='__main__':
    import sys
    file1 = ('c:\\a.jpg')        # added line
    file2 = ('c:\\b.jpg')        # added line

    file1, file2 = sys.argv[1:]
    print compare(file1, file2)

当我在上面运行时,它给出一个错误“ ValueError:需要多个0值才能解包”,问题出在这一行:

file1, file2 = sys.argv[1:]

我该如何纠正?我在下面尝试了都行不通。

    print compare('c:\\a.jpg', 'c:\\b.jpg')

更新

在Matt的帮助下添加了问题。

它可以绘制一个矩形来标记两个图像/图片上的差异。当两张图像/图片看起来大体相同时,却散布着小斑点。它绘制一个大矩形,标记包含所有斑点差异的大区域。有没有办法分别标记差异?

马特

关于您的第一个问题:

import ImageDraw
draw = ImageDraw.Draw(im2)
draw.rectangle(diff)
im2.show()

关于第二个问题:

错误状态,表明sys.argv没有足够的值分配给file1file2您需要将要比较的两个文件的名称传递给python脚本(变量sys.arv包含脚本的名称和所有命令行参数):

python name_of_your_script.py file1.jpg file2.jpg

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较两个图像/图片,并标记差异

来自分类Dev

比较两个图像并突出显示第二个图像上的差异

来自分类Dev

如何比较两个不同的图像,通过tcp发送差异,然后将差异与客户端上的图像合并?

来自分类Dev

如何裁剪两个图像的差异?

来自分类Dev

如何裁剪两个图像的差异?

来自分类Dev

OS X:比较两个图像

来自分类Dev

串联CNN比较两个图像

来自分类Dev

比较两个图像的工具?

来自分类Dev

比较 Sikuli 中的两个图像

来自分类Dev

若要使用OpenCV / cv2比较并标记2张图像(带图片)之间的差异

来自分类Dev

比较两个文件在python中报告差异

来自分类Dev

比较两个熊猫数据框的差异

来自分类Dev

PHP比较两个CSV文件并突出显示差异

来自分类Dev

比较两个列表以计算差异-Android / Java

来自分类Dev

比较C#中的两个日期并计算差异

来自分类Dev

比较两个工作表并突出显示差异

来自分类Dev

如何比较两个对象数组以找到差异

来自分类Dev

如何比较两个json文件并打印差异报告

来自分类Dev

Javascript比较两个日期以获得差异

来自分类Dev

python,比较两个文件并得到差异

来自分类Dev

比较两个文件并仅获取差异-Shell脚本

来自分类Dev

比较两个不均匀列表的差异

来自分类Dev

逐场比较两个对象并显示差异

来自分类Dev

比较两个列表并突出显示差异

来自分类Dev

比较python中的两个列表并打印差异

来自分类Dev

PHP比较两个日期之间的差异

来自分类Dev

比较两个整数并使用差异进行计算

来自分类Dev

比较两个列表的差异,.Except() 算法替换LINQ

来自分类Dev

比较两个文件并在 Java 中打印差异

Related 相关文章

热门标签

归档