使用openCV查找图像中的角坐标

Find corner coordinates in image using openCV

我是图像处理的新手,希望有人能 help/guide 指导我正确的方向。

所以我在black/white中有一张图片,我想找到preprocessed picture中内部黑色部分的角坐标。我的问题是哪种 method/s 会产生最准确的结果?

我想要类似 this 的东西(红点表示内角)

我不知道你使用的是什么语言,这使得回答这个问题变得更加困难,但我上次的方法是应用 openCV 的 canny edge detection algorithm. This allows you to see the edges on the image. Next find the contours。有了这两个函数和你的朋友 Google 的一点帮助,你将能够解决这个问题。祝你好运!

使用 cv::goodFeaturesToTrack() 并使用参数直到得到结果。

你可以参考这个为什么选择这个而不是cornerHarris:goodFeaturesToTrack vs cornerHarris

以及这个 SO 答案的例子:opencv-using-cvgoodfeaturestotrack-with-c-mat-variable

当然我假设你正在使用 C++,如果你正在使用 python 它不会有太大变化...

祝你好运,下次问之前先搜索一下

一种方法是在 X 和 Y(在原始图像中)中独立使用 sobel。由于您已经有了二进制文件,只需找到内边即可,这很容易。

然后可以对这些边缘进行采样 - 取边缘的几个点。并借助 OpenCV library function cv::fitLine 找到边缘线。对所有内边执行相同操作并计算交点。这种方法应该相当准确,因为从 fitLine 函数你基本上可以计算出亚像素精度的角点。