小编Rob*_*505的帖子

如何从Python中的模糊图像中找到扭曲矩形的准确角位置?

我正在寻找一个程序,可以使用 Python 中的 OpenCV 准确检测扭曲矩形的角点。

我已经尝试通过谷歌搜索来解决不同的建议,但是通过直线的正弦叠加(参见阈值图像)我可能无法检测到角点。到目前为止,我尝试了 findContours 和 HoughLines,但没有取得好的结果。不幸的是我不明白Xu Bin关于如何使用opencv找到模糊角位置的C代码?

这是我的初始图像:

在此输入图像描述

调整大小和阈值后,我应用精明的边缘检测来获得以下图像:

contours, hierarchy = cv2.findContours(g_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
box = cv2.minAreaRect(contour)
box = cv2.cv.BoxPoints(box) if imutils.is_cv2() else cv2.boxPoints(box)
box = np.array(box, dtype="float")
box = perspective.order_points(box)
Run Code Online (Sandbox Code Playgroud)

我仅通过一些额外的绘图得到以下结果:

我认为直线拟合是解决问题的好方法,但不幸的是我无法让 HoughLines 工作,并且在查看OpenCV Python - How to Implement RANSAC to detector Straightlines?之后我无法让 HoughLines 工作。RANSAC似乎也很难适用于我的问题。

非常感谢任何帮助。

python opencv image image-processing corner-detection

5
推荐指数
2
解决办法
5645
查看次数