推荐几个没封的网站2021,手机一键优化,微信开放平台怎么解除绑定,wordpress最新免费主题下载【检测原理】
一、首先进行canny边缘检测#xff0c;为获取车道线边缘做准备
二、进行ROI提取获取确切的车道线边缘#xff08;红色线内部#xff09;
三、利用概率霍夫变换获取直线#xff0c;并将斜率正数和复数的线段给分割开来
四、离群值过滤#xff0c;剔除斜率…【检测原理】
一、首先进行canny边缘检测为获取车道线边缘做准备
二、进行ROI提取获取确切的车道线边缘红色线内部
三、利用概率霍夫变换获取直线并将斜率正数和复数的线段给分割开来
四、离群值过滤剔除斜率相差过大的线段
五、最小二乘拟合实现将左边和右边的线段互相拟合成一条直线形成车道线
六、绘制线段
【代码解读】
LaneDetector 类包含了几个用于车道线检测的关键方法。这些方法分别用于将图像转换为灰度图、应用高斯模糊、应用Canny边缘检测以及定义和应用感兴趣区域ROI。以下是这些方法的详细解释
grayscale(self, img): 这个方法接收一个彩色图像作为输入通常是BGR格式然后使用cv2.cvtColor函数将其转换为灰度图像。转换后的图像只有一个颜色通道像素值范围通常是0到255其中0表示黑色255表示白色。canny(self, img, low_threshold, high_threshold): 这个方法接收一个灰度图像和两个阈值作为输入。使用cv2.Canny函数来检测图像中的边缘。这个函数使用两个阈值来检测强弱边缘并返回一个二值图像其中边缘用白色像素表示。gaussian_blur(self, img, kernel_size): 这个方法接收一个图像和一个核大小作为输入。使用cv2.GaussianBlur函数对图像进行高斯模糊以减少图像中的噪声和细节这对于边缘检测等后续处理步骤是有益的。region_of_interest(self, img, vertices): 这个方法接收一个图像和一个由顶点组成的列表通常是多边形作为输入。创建一个与输入图像大小和类型相同的零矩阵作为遮罩。根据输入图像是彩色还是灰度设置用于填充遮罩的颜色。对于彩色图像这是一个三通道或四通道如果包括透明度的元组所有通道的值都设置为255白色。对于灰度图像它只是一个标量值255。使用cv2.fillPoly函数在遮罩上填充多边形内部将多边形内部的像素设置为指定的填充颜色。使用cv2.bitwise_and函数将输入图像和遮罩进行按位与操作只保留遮罩中非零像素对应的图像部分。这实际上是将图像裁剪到多边形定义的ROI。
这个方法中的vertices参数应该是一个包含多个点的列表这些点定义了多边形的顶点。每个点都是一个包含两个坐标x, y的元组。例如对于梯形ROIvertices可能看起来像这样取决于图像的尺寸和所需的梯形大小
vertices [ [(x1, y1), (x2, y2), (x3, y3), (x4, y4)] # 四个顶点的坐标 ]
请注意vertices实际上是一个列表的列表因为cv2.fillPoly函数可以接受多个多边形但在这个上下文中我们只使用一个多边形来定义ROI。
这些方法构成了车道线检测算法的前置处理步骤。要完成整个车道线检测流程您还需要实现直线检测通常使用霍夫变换和直线拟合例如使用最小二乘法。此外您可能还需要实现一些后处理步骤如过滤掉不相关的线、将检测到的线绘制在原始图像上等。
hough_lines 函数这个函数接收一个Canny边缘检测后的图像、ρ值、θ值、阈值、最小线段长度和最大线段间隔作为输入并返回一个画有霍夫线的图像。霍夫变换用于检测图像中的直线。weighted_img 函数这个函数接收一个带有霍夫线的图像、初始图像以及三个权重参数α、β、λ作为输入并返回一个根据给定公式计算得出的加权图像。这个公式将初始图像、带有霍夫线的图像以及一个常数λ相加其中α和β是权重参数。filter_colors 函数这个函数接收一个图像作为输入并返回一个只包含黄色和白色像素的图像。它首先过滤出白色像素然后过滤出黄色像素最后将两个过滤后的图像以相同的权重相加。
这些函数一起工作首先使用Canny边缘检测和霍夫变换检测车道线然后使用加权图像合并原始图像和检测到的车道线最后过滤出黄色和白色像素以进一步处理。
【效果展示】 【代码调用】
图像检测或者视频检测调用非常简单 ld LaneDetector()# ld.detect_image(test_images/solidWhiteCurve.jpg)ld.detct_video(solidWhiteRight.mp4)
【测试环境】
anaconda3python3.8
opencv-python4.7.0.68
【源码下载】
https://download.csdn.net/download/FL1623863129/88804438