当前位置: 首页 > news >正文

使用python里的OpenCV包做简单的车道线检测

参考教程:
【从车道线检测项目入门OpenCV】 https://www.bilibili.com/video/BV1qk4y1r7jw/?p=3&share_source=copy_web&vd_source=9332b8fc5ea8d349a54c3989f6189fd3
注意:首先应该安装OpenCV包

openCV用法

读取图片

# 读取成灰度 img = cv2.imread('img.jpg', cv2.IMREAD_GRAYSCALE) # 显示图片 cv2.imshow('img_gray', img) # 阻塞,参数设置为0,返回值是等待键盘 cv2.waitKey(0) # 保存文件,需要指定文件后缀名 cv2.imwrite('img_gray.bmp', img)

canny边缘检测

canny计算四个方向的梯度(每个方向加上反方向就是八个方向),经过运算得到一个梯度值,设置了上下阈值,

edges = cv2.Canny(img, minThreshold, maxThreshold)

感兴趣区域选取

# 创建一个与给定数组形状和类型相同的新数组,所有元素都初始化为 0mask=np.zeros_like(edge_img)# 用于在图像上填充一个或多个多边形mask=cv2.fillPoly(mask,np.array([[[0,368],[300,210],[340,210],[640,368]]]),color=255)# 对两个数组或图像进行按位与操作masked_edge_img=cv2.bitwise_and(edge_img,mask)

霍夫变换

在一定误差范围交于某一个点即可

# 获取所有线段lines=cv2.HoughLinesP(edge_img,1,np.pi/180,15,minLineLength=40,maxLineGap=20)

参数说明:

  • image:边缘检测后的二值图像,通常是使用 Canny 边缘检测或其他方法得到的。 rho:从中心到直线的距离的精度,以像素为单位。
  • theta:角度的精度,以弧度为单位。 threshold:阈值,即一个直线的候选必须有的最小票数(即通过变换得到的交点数)。
  • minLineLength:检测到的线段的最小长度,小于这个长度的线段会被忽略。
  • maxLineGap:同一直线上的两点之间允许的最大间隙,即如果两个线段之间的间隙小于或等于这个值,它们会被认为是同一条直线。
  • lineType:线条的类型(默认是 cv2.CV_8UC1),即线条的类型,可以是 cv2.CV_8UC1 或cv2.CV_32SC1。

返回值:
lines:一个数组,其中每个元素是一个 (x1, y1, x2, y2) 的元组,表示检测到的线段的两个端点。

http://www.cnnetsun.cn/news/1381254.html

相关文章:

  • git学习目录
  • 游戏开发者必看:Bullet引擎布料仿真实战(附PBD算法源码解析)
  • Phi-3-Mini-128K本地化部署详解:使用Ollama管理模型服务
  • Speech Seaco Paraformer系统信息查看:监控你的ASR模型运行状态
  • 达梦DCA认证必看:主从同步参数优化全解析(含MAL心跳间隔/归档空间实战调优)
  • GICI —编译运行glog报错
  • YOLO12教学演示实战:置信度滑块对漏检/误检影响的直观对比分析
  • 夯实管理基石:企业档案规范化管理实施指南
  • 万字拆解Infoseek舆情监测系统:基于大模型+多模态的分布式舆情中台架构实践
  • 从零开始学FOFA:手把手教你用搜索引擎语法发现网络漏洞
  • 学术论文写作助手:集成百川2-13B与LaTeX的智能撰写与润色方案
  • 74HC138与74HC151的奇妙组合:如何用它们设计全加器?
  • 锐捷交换机ZAM功能实测手记:当不支持Python的设备遇到ZTP会发生什么?
  • OBS多平台直播终极指南:obs-multi-rtmp插件完整教程与实战应用
  • 别再乱用饼图了!ECharts高级配色方案与业务场景匹配指南
  • Linux 命令精讲:csplit 按内容智能分割文件详解
  • 大疆 Osmo 360 深度评测:双 1 英寸传感器如何重塑 8K 全景拍摄体验?
  • 基于Transformer架构的FUTURE POLICE模型:原理详解与调优实践
  • Qwen-Image零基础上手:RTX4090D用户首次体验Qwen-VL图文对话的详细步骤
  • 旋转图像特征点匹配
  • 3步完成Mac系统升级:OpenCore Legacy Patcher终极指南
  • H3C 双线路 NQA 联动配置实战:智能切换与故障恢复
  • SMUDebugTool实战指南:掌握AMD Ryzen平台硬件调试与性能优化
  • 全志A40I Android7.1开机自启动避坑指南:从内核修改到广播接收全流程
  • 智能设备管理系统:从架构设计到高效运维实战
  • 基于 Docker Compose 一键部署 XXL-Job 调度中心实战
  • HandyControl中Button图标展示多色路径
  • STM32F103CBT6通过I2C接口高效读取LC709203F锂电池电量数据的实战指南
  • 告别Tkinter!用pywebview+HTML5打造Python桌面应用的3种实战姿势
  • 透视投影实战:用Python+OpenCV实现3D点云到2D图像的转换(附完整代码)