通过缩放或其他小变化查找重复的图像?

时间:2016-06-10 16:48:52

标签: c++ image-processing sdl-2

我有一套小尺寸的精灵,通常是25x20种尺寸,高于256x256。这些精灵中的一些被重复缩小,或者有时几个像素被删除/添加到边缘或者一种颜色已经改变。

我如何找到这些副本?我的应用程序是用C ++编写的,我的图像是SDL_Surfaces *'es。

我附上了一些示例精灵表,显示了我想要比较和重复数据删除的精灵。

higher res

lower res and other changes

这是一个更清楚地显示我想要比较的图像,因为我觉得有些人感到困惑,并且认为我想要比较“整个精灵表”,而实际上我只是希望不同的精灵相互比较:

enter image description here

1 个答案:

答案 0 :(得分:2)

请在Open CV tic tac toe X / O detection上阅读我的回答。接受的答案也可能有所帮助。

我对你的案例的回答:可以使用OpenCV中的匹配形状功能完成(查看Documentation中的第3部分)

因此,对于每个图像,获取最大轮廓(您的对象)并使用 ALL 调用其他图像。对于每个对应两个轮廓之间相似性的图像,该函数返回0到1的值:值越小,轮廓越相似。您可以设置一定的阈值以消除其他图像(例如,消除所有0.5相似的图像)。试用和错误可能是找到最佳阈值的唯一方法。祝你好运!