我正在寻找一种快速的想法/算法,让我在图像文件中找到正方形(作为标记点)。然而,这不应该是太大的挑战......
我开始通过将源图像的颜色更改为灰度图像并扫描图像的每一行来寻找两三个最长的行(逐个像素)。
然后有一个“线条”数组,我正在寻找可以创建欲望方块的元素。
更好的主意是找到具有已知特征的模式,例如:它是正方形的,在正方形之外没有失真(只有空白)等。
目标是在 1-2 秒内分析 5000 X 5000 像素的图像。
是否可以?
我正在寻找一种快速的想法/算法,让我在图像文件中找到正方形(作为标记点)。然而,这不应该是太大的挑战......
我开始通过将源图像的颜色更改为灰度图像并扫描图像的每一行来寻找两三个最长的行(逐个像素)。
然后有一个“线条”数组,我正在寻找可以创建欲望方块的元素。
更好的主意是找到具有已知特征的模式,例如:它是正方形的,在正方形之外没有失真(只有空白)等。
目标是在 1-2 秒内分析 5000 X 5000 像素的图像。
是否可以?
OpenCV 示例之一squares.cpp
就是这样做的,请参阅此处的代码,. 或者,您可以查找霍夫变换以检测图像中的所有线条,然后测试两条以直角相交的线条。
该网站上还有许多资源可以帮助您:
我敢肯定还有其他人,这些只是我遇到的前几个。
请参阅尺度不变特征变换、模板匹配和霍夫变换。快速且不准确的猜测可能是制作颜色直方图并进行比较。如果图像足够复杂,您可能能够区分几组图像。
为简单起见,假设我们有 R、G 和 B 的三个桶。一个完全白色的图像将有 (100%, 100%, 100%) 的 (R, G, B)。一个完全红色的图像将具有 (100%, 0%, 0%)。一个复杂的图像可能有类似 (23%, 53%, 34%) 的东西。如果你取那个 (R, G, B) 空间中的点之间的距离,你可以比较哪个“更接近”。
我猜克里斯的链接解决了这个问题:)