有没有更快的方法来判断两张图片是否不同?

2024-04-26 18:19:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我用它来判断现在的截图是否和上次截图不同。 现在我用

with open('last_screenshot.bmp','rb+') as f:
    org = f.read()
with open('now_screenshot.bmp','rb+') as f:
    new = f.read()
if(org==new):
    print("The pictures are same")

有没有更快的方法


Tags: theorgnewreadifaswithopen
3条回答

比较像素是行不通的。您的选择:

  1. 使用描述符(HOG、SIFT、SURF、ORB)提取特征,对其进行匹配,查看匹配的数量example
  2. 计算哈希,计算汉明度量here's example
  3. 取预训练的埋置器;当涉及到图像时,它非常简单,只需激活倒数第二层;它可以是inception、vgg等

您可以使用标准库附带的^{}。这不会将整个文件读入内存,而是在遇到不同的块时read them in chunks和短路。用法示例:

import filecmp

if filecmp('last_screenshot.bmp', 'now_screenshot.bmp', shallow=False):
    print('Files compare equal')

你可以一块一块地迭代文件,而不是在内存中读取整个内容

或者,使用filecmp或shell out来cmp(1)

相关问题 更多 >