怎么使用opencv实现车道线检测
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"怎么使用opencv实现车道线检测"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇
千家信息网最后更新 2026年11月03日怎么使用opencv实现车道线检测
这篇"怎么使用opencv实现车道线检测"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"怎么使用opencv实现车道线检测"文章吧。
效果
void lane_detection(cv::Mat &src, cv::Mat &dst) { dst = cv::Mat::zeros(src.size(),src.type()); cv::Mat grid =cv::Mat::zeros(src.size(),src.type()); int iStep = 25; int iNUmsX = src.cols / iStep; int inUmsY = src.rows / iStep; for(int i = 1; i <= inUmsY; i++) { int yPos = i * iStep + src.cols / 5; cv::Point2d pt1,pt2; int iOffset = 10; pt1.x = 0 + iOffset; pt1.y = yPos; pt2.x = src.cols - iOffset; pt2.y = yPos; cv::line(grid,pt1,pt2,cv::Scalar(255), 1, cv::LINE_4); } for(int i = 1; i <= iNUmsX; i++) int xPos = i * iStep; pt1.x = xPos; pt1.y = 0 + iOffset + src.rows / 5; pt2.x = xPos; pt2.y = src.rows - iOffset; cv::imshow("grid", grid); cv::Mat bitNot; cv::bitwise_and(src, grid, bitNot); cv::Mat add = cv::Mat::zeros(bitNot.rows, bitNot.cols,bitNot.type()); int iDiffTh = 200; QTime timer; timer.start(); //#pragma omp parallel for num_threads(10) for (int i = 1; i < bitNot.rows - 1; i++) { for (int j = 1; j < bitNot.cols - 1; j++) { int iValueX = (int)bitNot.at(i, j); int iValueXPre = (int)bitNot.at(i-1, j); int iValueXNext = (int)bitNot.at(i+1, j); int iValueY = (int)bitNot.at(i, j); int iValueYPre = (int)bitNot.at(i, j-1); int iValueYNext = (int)bitNot.at(i, j+1); if((iValueX - iValueXPre > iDiffTh && iValueX - iValueXNext > iDiffTh) || (iValueY - iValueYPre > iDiffTh && iValueY - iValueYNext > iDiffTh)) { add.at(i, j) = 255; } } } qDebug()<<"process time: "<> contours; //cv::findContours(matThresh,contours,) std::vector > contoursDefect; std::vector hierarchyDefect; cv::Mat canves; cv::cvtColor(src, canves,cv::COLOR_RGBA2RGB); cv::findContours(matThresh, contoursDefect, hierarchyDefect, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_NONE); for (size_t i = 0; i < contoursDefect.size(); i++) { cv::Mat contour(contoursDefect.at(i));//第i个轮廓 double area = contourArea(contour); if (area >= 50) cv::Moments moment;//矩 moment = moments(contour, false); cv::Point2d pt1; double m00 = moment.m00 + 0.01; pt1.x = moment.m10 / m00;//计算重心横坐标 pt1.y = moment.m01 / m00;//计算重心纵坐标 cv::drawContours(canves, contoursDefect, i, cv::Scalar(255, 255, 0), -1); } cv::imshow("canves", canves); cv::waitKey(0); } void test_lane_detection() int i = 0; while(1) cv::Mat src; QString dir("D:\\QtProject\\Opencv_Example\\gen_grid_region\\scene_"); QString path; if(i>9) path = QString("%1%2%3").arg(dir).arg(i++).arg(".png"); else path = QString("%1%2%3%4").arg(dir).arg("0").arg(i++).arg(".png"); cout<以上就是关于"怎么使用opencv实现车道线检测"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
车道
检测
文章
知识
篇文章
重心
价值
大部分
就是
形态
形态学
效果
更多
横坐标
步骤
知识点
纵坐标
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
精品咖啡豆
互联网科技股
互联网最新的科技
科技服务与互联网
互联网金融 科技金融
互联网科技公司怎么样
互联网科技公司电话
安徽鑫晟辉互联网科技
互联网女皇 腾讯科技
济南华为互联网科技产业总部基地
宁夏众和广鑫互联网科技有限公司
科技互联网大厂
岳阳华臻互联网科技有限公司
互联网金融科技展
特约风豹互联网科技为什么扣费
扫呗互联网科技有限公司
广州三三互联网科技有限公司
唐山双旺合互联网科技产业园
上海旺乐尼互联网科技有限公司
咖啡
保险科技 互联网保险
互联网金融科技创新
丰台科技园 互联网
米客互联网科技
丰台科技园 互联网公司
互联网企业和科技型企业
徐州市互联网科技有限公司
互联网科技企业商标注意事项
艺电能源互联网科技有限公司招聘