我想知道比较2个RGB图像的最佳方法是什么。 我想为差异找到一个边界框列表。 或所有更改的统一边界框。都可以。
所以说我正在比较2个桌面屏幕,其中一张图像的右下角时间不同,并且图标在屏幕的左上角移动了
该算法可以找到移动的图标的边界框和变化的数字(秒),这使我得到包含变化的2个框;或者它可以生成MIN / MAX逻辑,并生成一个包含这两个变更的并集。在这种情况下,该框将是整个屏幕的大小,因为我的示例是在最坏的情况下使用的。 (我知道可以合并这些框并得到一个联合的框)。但是也许有一个更快的算法可以找到每个单独的盒子。这就是为什么找到联合的算法也可以的原因。
我逐个像素进行比较,发现整个屏幕的最小最大值,其中变化以嵌套循环的形式存在(如时尚)。
我什至在OPENCL上尝试过,但是4K图像的速度是0 ^ 2,因此是不可接受的。
是否有类似搜索的算法,可以加快屏幕搜索的速度。 也许将其表示为图形。类似于A *还是其他基于启发式的搜索?
也许缩小比例并进行搜索,然后仅对检测到更改的部分进行第二次搜索?
也许要转换为YUV帮助了?
答案 0 :(得分:0)
我能想到的最快的解决方案。将图像转换为灰度,对两个图像执行异或运算,然后使用聚类算法找到边界框。