python opencv检测直线 cv2.HoughLinesP的实现


Posted in Python onJune 18, 2021

cv2.HoughLines()函数是在二值图像中查找直线,cv2.HoughLinesP()函数可以查找直线段。

cv2.HoughLinesP()函数原型:

HoughLinesP(image, rho, theta, threshold, lines=None, minLineLength=None, maxLineGap=None)
  • image: 必须是二值图像,推荐使用canny边缘检测的结果图像; 
  • rho: 线段以像素为单位的距离精度,double类型的,推荐用1.0 
  • theta: 线段以弧度为单位的角度精度,推荐用numpy.pi/180 
  • threshod: 累加平面的阈值参数,int类型,超过设定阈值才被检测出线段,值越大,基本上意味着检出的线段越长,检出的线段个数越少。根据情况推荐先用100试试
  • lines:这个参数的意义未知,发现不同的lines对结果没影响,但是不要忽略了它的存在 
  • minLineLength:线段以像素为单位的最小长度,根据应用场景设置 
  • maxLineGap:同一方向上两条线段判定为一条线段的最大允许间隔(断裂),超过了设定值,则把两条线段当成一条线段,值越大,允许线段上的断裂越大,越有可能检出潜在的直线段

HoughLinesP()调用例子:

# coding=utf-8
import cv2
import numpy as np
 
img = cv2.imread('02.jpg')
 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 
gaus = cv2.GaussianBlur(gray,(3,3),0)
 
edges = cv2.Canny(gaus, 50, 150, apertureSize=3)
 
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 100, minLineLength, maxLineGap)
 
for x1, y1, x2, y2 in lines[0]:
    cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
 
cv2.imshow("houghline",img)
cv2.waitKey()
cv2.destroyAllWindows()

到此这篇关于python opencv检测直线 cv2.HoughLinesP的实现的文章就介绍到这了,更多相关opencv检测直线cv2.HoughLinesP内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的一些用法分享
Oct 07 Python
Windows下为Python安装Matplotlib模块
Nov 06 Python
基于Python 装饰器装饰类中的方法实例
Apr 21 Python
python 把列表转化为字符串的方法
Oct 23 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
Nov 29 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
如何用python清洗文件中的数据
Jun 18 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 #Python
详解Python函数print用法
Jun 18 #Python
总结Python使用过程中的bug
简单介绍Python的第三方库yaml
Jun 18 #Python
教你如何使用Python实现二叉树结构及三种遍历
Python实现智慧校园自动评教全新版
python用海龟绘图写贪吃蛇游戏
You might like
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
jQuery实现日历效果
2020/09/11 jQuery
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
python实现简单的计时器功能函数
2015/03/14 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
对Python 语音识别框架详解
2018/12/24 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
Django中template for如何使用方法
2021/01/31 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
五好家庭事迹材料
2014/12/20 职场文书
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA