是否有任何代码可以检测是否有任何像素颜色变化?
我想要做的是检测区域中的任何变化(如果像素
)因此,如果该区域中任何像素的颜色发生变化,它会提醒我。
抱歉我的英语不好。答案 0 :(得分:2)
要查找连续屏幕截图之间的确切差异:
#!/usr/bin/env python
from PIL import ImageChops # $ pip install pillow
from pyscreenshot import grab # $ pip install pyscreenshot
im = grab()
while True: # http://effbot.org/zone/pil-comparing-images.htm
diff = ImageChops.difference(grab(), im)
bbox = diff.getbbox()
if bbox is not None: # exact comparison
break
print("bounding box of non-zero difference: %s" % (bbox,))
# superimpose the inverted image and the difference
ImageChops.screen(ImageChops.invert(im.crop(bbox)), diff.crop(bbox)).show()
input("Press Enter to exit")
答案 1 :(得分:0)
直观的解决方案可能如下:
1) Take the bytes of the region you want to check for changes
2) Convert them to a string of bytes
3) Use an hash function from the hashlib module
4) Compare the obtained hash with the previous one
(if they're different something has changed)
这种方法也检测光线条件下的任何变化,因此可能不是您想要的。但这真正检测到图像部分中的 ANY change 。
还有一些像PyOpenCV
这样的库绑定可以做到这一点以及更多。