python+opencv实现霍夫变换检测直线


Posted in Python onOctober 23, 2020

本文实例为大家分享了python+opencv实现霍夫变换检测直线的具体代码,供大家参考,具体内容如下

功能:

创建一个滑动条来控制检测直线的长度阈值,即大于该阈值的检测出来,小于该阈值的忽略
注意:这里用的函数是HoughLinesP而不是HoughLines,因为HoughLinesP直接给出了直线的断点,在画出线段的时候可以偷懒

代码:

# -*- coding: utf-8 -*- 

import cv2

#两个回调函数
def HoughLinesP(minLineLength):
 global minLINELENGTH 
 minLINELENGTH = minLineLength + 1
 print "minLINELENGTH:",minLineLength + 1
 tempIamge = scr.copy()
 lines = cv2.HoughLinesP( edges, 1, cv2.cv.CV_PI/180, minLINELENGTH, 0 )
 for x1,y1,x2,y2 in lines[0]:
 cv2.line(tempIamge,(x1,y1),(x2,y2),(0,255,0),1)
 cv2.imshow(window_name,tempIamge)

#临时变量
minLineLength = 20

#全局变量
minLINELENGTH = 20
max_value = 100
window_name = "HoughLines Demo"
trackbar_value = "minLineLength"

#读入图片,模式为灰度图,创建窗口
scr = cv2.imread("G:\\homework\\building.bmp")
gray = cv2.cvtColor(scr,cv2.COLOR_BGR2GRAY)
img = cv2.GaussianBlur(gray,(3,3),0)
edges = cv2.Canny(img, 50, 150, apertureSize = 3)
cv2.namedWindow(window_name)

#创建滑动条
cv2.createTrackbar( trackbar_value, window_name, \
  minLineLength, max_value, HoughLinesP)

#初始化
HoughLinesP(20)

if cv2.waitKey(0) == 27: 
 cv2.destroyAllWindows()

调用:

>>> import os
>>> os.chdir("g:\homework")
>>> 
>>> import HoughLines
minLINELENGTH: 20
minLINELENGTH: 21
minLINELENGTH: 22
minLINELENGTH: 23
minLINELENGTH: 25
minLINELENGTH: 26
minLINELENGTH: 27
minLINELENGTH: 28

效果图:

python+opencv实现霍夫变换检测直线

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python yield使用方法示例
Dec 04 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
目前最全的python的就业方向
Jun 05 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
NumPy 数组使用大全
Apr 25 Python
python搜索包的路径的实现方法
Jul 19 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
总结Python常用的魔法方法
May 25 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 #Python
基于Python对数据shape的常见操作详解
Dec 25 #Python
Python正则匹配判断手机号是否合法的方法
Dec 09 #Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 #Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 #Python
Python lambda表达式用法实例分析
Dec 25 #Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 #Python
You might like
提升PHP执行速度全攻略
2006/10/09 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
python每隔N秒运行指定函数的方法
2015/03/16 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python中如何设置代码自动提示
2020/07/15 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
网络教育自我鉴定
2014/02/04 职场文书
优秀家长自荐材料
2014/08/26 职场文书
六年级学生期末评语
2014/12/26 职场文书
党支部意见范文
2015/06/02 职场文书