gpt4 book ai didi

c# - 在图像中找到方格板,并确定角度和距离

转载 作者:行者123 更新时间:2023-11-30 16:22:24 24 4
gpt4 key购买 nike

我想做的是获取一个源图像,其中包含一个已知物理尺寸和已知数量的方 block 的黑白棋盘,并确定所述棋盘的边界以及与它正在被观察(假设它完全平坦)以及从多远的距离观察。

如果我能可靠地识别棋盘的 4 个角,那么我就知道如何计算角度和距离,因此任务更多的是识别棋盘。

到目前为止,我已经尝试过对图像进行灰度化并增加对比度,因此我最终得到了一个鲜明的黑白图像(在眼睛看来只有白色方 block 包含黑色)- 虽然我可以识别通过测量从黑->白->黑的变化频率,从自上而下的角度来看,板的边界很好,我不确定如何从任何角度开始这样做。

名义上我是用 C# 来做这件事,但就实际答案而言,我很高兴看到任何具有类似 C 语法的代码示例——不过我对这个代码示例的数学和方法更感兴趣。

最佳答案

在 3d 世界中查找一般的 2d 对象通常使用 SIFT 或 SURF 来完成。

有两个步骤:

  • 在图像中找到数量可控的局部特征(例如强角)
  • 找到图像中这些点与搜索模式之间的相关性

OpenCV 有一个实现: Features2D + Homography to find a known objectWikipedia article on surf 还点了另外一个c# implementation .另见 this Stackoverflow answer :


现在这是一个非常通用的方法,我不知道它在您的棋盘上效果如何。

但是棋盘模式有具体的做法:比如the openCV function cvFindChessboardCorners ( tutorial )

我没用过,但我找到了this description算法的:(Source is in the file cvcalibinit.cpp )

  • 通过阈值分割黑白方 block 的图像二值化
  • 找到黑色方 block 的角:
    • 找到黑色区域边界的轮廓
    • 选择合适形状的轮廓
    • 用 4 顶点多边形近似这些轮廓
  • 在这些中选择类似于校准图案正方形的四边形
  • 提取所选四边形的角,附近至少有一个角
  • 根据标定对象的大小将所选四边形的角分组成直线

关于c# - 在图像中找到方格板,并确定角度和距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com