我正在尝试与linux x屏幕截图图像进行图像比较而不是实际执行
我遵循python脚本
http://aatiis.me/2010/08/12/fast-image-comparison-with-python.html
它工作并为样本鸭图像(snap_from_x_duck 和resized_from_duck )提供输出,我用它进行测试,但是当我加载我的实际图像时(snap_from_x.png AND resized_from_org.png )它给出了错误..
Comparing 1 images:
* 1 / 1: /opt/ad_re.png /opt/op.png ...
Traceback (most recent call last):
File "imgcmp.py", line 246, in <module>
sim = cmp.similarity()
File "imgcmp.py", line 212, in similarity
cmp = self.compare()
File "imgcmp.py", line 180, in compare
diff.append(cmp.levenshtein)
File "imgcmp.py", line 127, in levenshtein
stra_r = ''.join((chr(x>>16) for x in self.imga_int))
File "imgcmp.py", line 50, in imga_int
self._imga_int = tuple(self._img_int(self._imga))
File "imgcmp.py", line 120, in _img_int
yield pixel[0] | (pixel[1]<<8) | (pixel[2]<<16)
TypeError: 'int' object is unsubscriptable
完全需要这方面的帮助才能解决这个问题
答案 0 :(得分:5)
有什么(非常)可能发生的是,配方只能用于RGB图像 - 而且你的图像是一个调色版本,每个像素只有1个字节(因此,图像的像素是单个字节,不是具有RGB值的可迭代的。)
解决方法是在调用比较函数之前将图像转换为RGB - 只是做:
img = img.convert("RGB")