检测停车场线和ROI openCV

时间:2012-07-29 22:46:33

标签: c++ image-processing opencv edge-detection roi

我正在开发一个openCV项目,试图检测停车位并从图像中提取ROI(感兴趣区域)以进一步检测车辆。提供的图像将包括所有空的停车位。我已经阅读了几篇关于此的帖子和教程。到目前为止,我尝试的方法是:

1.Convert image to grayscale using `cvtColor()`
2.Blur the image using `blur()`
3.Threshold the image to get edges  `threshold()`
4.Find image contours using findContours()
5.Finding all convex contours using `convexHull()`
6.Approx polygonal regions using `approxPolyDP()`
7.Get the points for the result from 5, if total number of points =4. 
  Check for area and angle. 

我猜这种方法的问题是当我findContours()时,它发现不规则且轮廓较长的轮廓导致approxPolyDP假设四边形比停车位本身大。有些停车位有洞/不规则。

我也尝试了goodFeaturesToTrack()并且它非常有效地提供了角落,但是输出中存储的点是任意顺序的,我认为从中提取四边形/矩形会非常严​​格。

我花了很多时间在这上面。有没有更好的方法呢?

This是我正在玩的形象。

1 个答案:

答案 0 :(得分:1)

尝试在阈值图像上使用dilate以使孔消失。

这是一个很好的教程:opencv erode and dilate