image-processing - 使用opencv检测圆的图案

标签 image-processing opencv pattern-matching computer-vision object-recognition

我必须使用opencv检测6个圆圈的图案。我通过使用opencv中的阈值和轮廓函数检测到了圆及其质心。

现在我必须以一种对于缩放和旋转不变的方式定义这些圆之间的关系。有了这个,我就能够在各种 View 中检测到这种模式。我必须使用此模式来确定对象姿势。

如何实现缩放/旋转不变性?您有任何我可以阅读的引用资料吗?

最佳答案

为了使您的图案对于旋转和缩放不变,您必须在检测图案时标准化方向和缩放。这是实现此目的的简单算法

  • 检测中心和圆的大小(你说你已经实现了这一点 - 很好!)
  • 使用简单平均值计算平均中心。从此平均值表达所有中心
  • 使用简单范数找到最远的中心(欧几里得就足够了)
  • 缩放中心位置和圆圈大小,使最大距离为 1.0
  • 旋转中心,使最远的中心坐标为 (1.0, 0)

你已经完成了。您现在是缩放/旋转不变模式检测器的自豪拥有者!恭喜!

现在您可以找到图案,按照建议对其进行转换,并比较中心位置和圆圈大小。

关于image-processing - 使用opencv检测圆的图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071644/

相关文章:

c++ - 我如何每秒仅处理 2 帧?如何退出 c 或 c++ 中的 while 循环?

regex - 在单独的文件中提取具有特定模式的行

模式匹配和if-else之间的性能差异

haskell - (l,r)之前的~是什么意思

c++ - 用于提取红色 channel 的 SDL 库

image-processing - ImageMagick 基于矩形边框颜色裁剪图像

opencv - 使用 C++ opencv 在黑白图像中查找对象的中心点

c++ - 在 C++ 中实现变形/液化工具

python - opencv python错误:断言失败:size.width> 0 && size.height> 0

opencv - NumPy/OpenCV 2 : how to enumerate all pixels from region?