图像确定缓慢



我有一个图像列表和一个模板,需要比较模板与哪个图像匹配。我也实现了多处理,它加快了程序,但如果列表的大小很大,则需要几秒钟才能产生结果。即使列表大小更大,我如何加快程序以在ns中产生结果。

def compare_images(original, image_to_compare):
(score, diff) = ssim(original, image_to_compare, full=True)
diff = (diff * 255).astype("uint8")
score= score*100
print("SSIM: {}".format(score))

if(score > 90):
return True
else:
return False

f = partial(compare_images, template)
with Pool() as p:
result= p.map(f, converted_screens)
print(result)

其中template是我必须找到并转换的图像_screens是我正在进行比较的列表,两者都是全局变量,并使用cv2.cvtColor(image,cv2.color_BGR2GRAY(.转换为灰色空间

这更多的是一个需要思考的事情列表。

首先,函数ssim()使用了哪些包。这是我看到的第一件事,如果市场上有更快的竞争
例如,如果您只需要90%与模板相似的照片,则检查器应停止工作,并在不可能时立即返回False,也就是说,差异超过10%

其次,您可以看看这篇关于Ray的文章,据说它比multiprocessing快得多。

另外一个想法是,如果您真的关心速度上的哪怕是微小的提高,那么每次迭代时打印到控制台都需要相当长的时间。如果你不需要所有的结果,可以考虑只返回最好的90%左右

最新更新