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中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
Python比较两个图片相似度的方法
Mar 13 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
TensorFlow神经网络优化策略学习
Mar 09 Python
Django中url的反向查询的方法
Mar 14 Python
python求最大连续子数组的和
Jul 07 Python
Python之列表实现栈的工作功能
Jan 28 Python
python创建与遍历List二维列表的方法
Aug 16 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 #Python
详解Python函数print用法
Jun 18 #Python
总结Python使用过程中的bug
简单介绍Python的第三方库yaml
Jun 18 #Python
教你如何使用Python实现二叉树结构及三种遍历
Python实现智慧校园自动评教全新版
python用海龟绘图写贪吃蛇游戏
You might like
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python实现Const详解
2015/01/27 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
给男朋友的道歉信
2014/01/12 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
《灯光》教学反思
2014/02/08 职场文书
答谢会策划方案
2014/05/12 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
怎样写辞职信
2015/02/27 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
MySQL学习之基础操作总结
2022/03/19 MySQL