没有合适的资源?快使用搜索试试~ 我知道了~
首页利用c++实现车道线识别.pdf
本篇文章是在学习C++的时候做的小项目,对目前的方法进行了稍微的改动,效果还可以。目前车道线检测方面的方法主要包括:基于Hough变换、基于透视变换、基于机器学习和深度学习。其中第一种方法是根据车道线与周围环境的物理特征差异进行图像的处理,从而检测到车道线,该方法复杂度较低,实时性较高,但易受到道路环境的干扰,而且Hough变换的直线检测特质导致了该方法在道路曲率较大时的检测误差较大。本文是利用c++和Hough变换实现对车道线的检测。
资源详情
资源评论
资源推荐

基于 Hough 变换的车道线检测
(本篇文章是在学习 C++的时候做的小项目,对目前的方法进行了稍微的改动,
效果还可以。)
目前车道线检测方面的方法主要包括:基于 Hough 变换、基于透视变换、基
于机器学习和深度学习。其中第一种方法是根据车道线与周围环境的物理特征差
异进行图像的处理,从而检测到车道线,该方法复杂度较低,实时性较高,但易
受到道路环境的干扰,而且 Hough 变换的直线检测特质导致了该方法在道路曲
率较大时的检测误差较大。
基于 Hough 变换的车道线检测的基本步骤如下:
1. 对视频进行处理,将视频流转化为一帧帧的图像。
cv::Mat frame;
cv::VideoCapture capture(“challenge.mp4”);
capture >> frame;
2. 图像转换为灰度图像
cv::Mat LaneDetector::Image_preprocessing(cv::Mat input_image)
{
cv::Mat binarization_image, gray_image,dst;
int blockSize = 5; //adaptiveThreshold 的计算单位是像素的邻域块,
邻域块取多大,就由这个值作决定
int constValue = 5; //这个参数实际上是一个偏移值调整量
const int maxVal = 255;
int adaptiveMethod = 1;
int thresholdType = 1;
cv::cvtColor(input_image, gray_image, cv::COLOR_RGB2GRAY);
//实现色彩的空间转换,灰度化图像
//二值化似乎用不到
//cv::threshold(gray_image, binarization_image, 140, 255,
cv::THRESH_BINARY); //固定会二值化图像,cv::THRESH_BINARY 是二
值化的类型
//cv::adaptiveThreshold(gray_image, binarization_image,maxVal,
adaptiveMethod, thresholdType, blockSize,constValue); //自适应二值化图像,
效果更好
cv::imshow("gray_image", gray_image); //imshow()函数功能就是
把你刚才载入的图片显示出来。
return gray_image;
}













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0