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使用urllib2获取网络资源实例讲解
Dec 02 Python
python简单程序读取串口信息的方法
Mar 13 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python文档生成工具pydoc使用介绍
Jun 02 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
Python基于TCP实现会聊天的小机器人功能示例
Apr 09 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
Python从单元素字典中获取key和value的实例
Dec 31 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python实现简单石头剪刀布游戏
Oct 24 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
php如何连接sql server
2015/10/16 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
Python Requests安装与简单运用
2016/04/07 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
对Python中内置异常层次结构详解
2018/10/18 Python
通过自学python能找到工作吗
2020/06/21 Python
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
高中英语演讲稿范文
2014/04/24 职场文书
小学毕业演讲稿
2014/04/25 职场文书
大学生创业计划书
2014/08/14 职场文书
作风转变心得体会
2014/09/02 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers