最近接到上级指令开发一个公路上检测车道线污损情况的项目,刚开始直观的以为应该很容易完成,结果大大小小的坑填了一个多月才完成了一个很low的成品。就记录一下具体的思路吧,怕以后时间长了忘记了。。
主程序流程:
- 摄像头返回一帧图像
- 只保留车道线的区域为ROI区域,剔除其余冗余信息
- 色彩空间转换,中值滤波,直方图拉伸,形态学滤波
- Canny边缘检测
- Hough transform检测边缘上的直线
- 根据斜率,重复性,长度等限制条件,筛选直线,尽量剔除掉非车道线边缘的直线
- 灰度图像在车道线范围内像素点的二值滤波,得到车道线部分为白(255),其余为黑(0)的二值图像
- 二值图像反透视变换为鸟瞰视角的二值图像
- 在二值图像里寻找封闭区域,破损率=封闭区域的所有子内轮廓的面积之和/封闭区域的所有外轮廓面积之和