我想知道比较2个RGB图像的最好方法是什么。我想要找到一个不同的边界框列表。或用于所有更改的统一边界框。任何一种都可以。
假设我正在比较两个桌面屏幕,其中一个图像在右下角的时间不同,并且在屏幕的左上角移动了一个图标
该算法可以找到移动的图标和变化的数字(秒)的边界框,这给出了两个包含更改的框,或者它可以生成一个最小/最大类型的逻辑,并生成一个包含这两个更改的并集的框。在这种情况下,框将是整个屏幕的大小,就像我的示例是针对最坏情况的情况一样。(我知道一个人可以将这些盒子联合起来,得到一个联合的盒子)。但也许有一种比单独找到每个盒子更快的算法。这就是为什么找到并集的算法也是可以的。
我已经逐个像素进行了比较,并找到了整个屏幕的最小最大值,其中变化以嵌套循环的形式存在。
我甚至在OPENCL上尝试过,但4K图像的速度是不可接受的,因为它是0^2。
有没有一种类似搜索的算法可以加速屏幕的搜索。也许可以用图表来表示它。有点像A*或其他基于启发式的搜索?
也许缩小它并执行搜索,然后只在检测到更改的部分上进行第二次搜索?
也许会转换到YUV帮助?
发布于 2019-06-25 09:07:39
我能想到的最快的解决方案。将图像转换为灰度图像,对两个图像执行xor运算,然后使用聚类算法查找边界框。
https://stackoverflow.com/questions/56744926
复制相似问题