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 装饰器功能以及函数参数使用介绍
Jan 27 Python
浅析python 内置字符串处理函数的使用方法
Jun 11 Python
Python中使用hashlib模块处理算法的教程
Apr 28 Python
python从入门到精通(DAY 1)
Dec 20 Python
python套接字流重定向实例汇总
Mar 03 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
简单了解python高阶函数map/reduce
Jun 28 Python
Python封装成可带参数的EXE安装包实例
Aug 24 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
Python extract及contains方法代码实例
Sep 11 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 #Python
详解Python函数print用法
Jun 18 #Python
总结Python使用过程中的bug
简单介绍Python的第三方库yaml
Jun 18 #Python
教你如何使用Python实现二叉树结构及三种遍历
Python实现智慧校园自动评教全新版
python用海龟绘图写贪吃蛇游戏
You might like
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
javascript数组排序汇总
2015/07/07 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
利用Python读取文件的四种不同方法比对
2017/05/18 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
Python求解正态分布置信区间教程
2019/11/20 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
python下载的库包存放路径
2020/07/27 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
2015年国庆晚会主持词
2015/07/01 职场文书
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android