OpenCV:检测区域是直的还是弯曲的

我正在使用 OpenCV 来检测交通图像中的黄线。我能够找到(大部分)使用 hsv 掩码找到想要的区域:


lower = np.array([20,100,100])

upper = np.array([30,255,255])

mask = cv2.inRange(hsv_img, lower, upper) 


result = cv2.bitwise_and(image, image, mask = mask)

掩蔽的结果(灰度):


https://i.stack.imgur.com/bIrTc.png


https://i.stack.imgur.com/fy0M3.png


我想检查面具是直线还是曲线。


我尝试过使用 canny 检测、霍夫线和轮廓,但我无法使用这些方法中的任何一种准确预测它是否弯曲。


检查该区域是弯曲还是直线的最佳方法是什么?


编辑1:


道路不一定是同一个方向。它也可以是直的,甚至指向相反的方向。


哆啦的时光机
浏览 393回答 1
1回答

紫衣仙女

您可以从此二进制图像中找到此二进制图像和凸包之间的差异(按位异或)。这将是曲率的指标。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python