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登录QQ邮箱发信的实现代码
Feb 10 Python
Python中的并发编程实例
Jul 07 Python
python中assert用法实例分析
Apr 30 Python
Python基础中所出现的异常报错总结
Nov 19 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
Python实现八皇后问题示例代码
Dec 09 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
Python的条件锁与事件共享详解
Sep 12 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
python利用opencv保存、播放视频
Nov 02 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
Linux操作系统安装LAMP环境
2015/06/26 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
php-msf源码详解
2017/12/25 PHP
php递归函数怎么用才有效
2018/02/24 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
PyQt5实现简易计算器
2020/05/30 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
python 错误处理 assert详解
2020/04/20 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
pandas 数据类型转换的实现
2020/12/29 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
高中学生干部学习的自我评价
2014/02/21 职场文书
个人作风建设自查报告
2014/10/22 职场文书
开学典礼观后感
2015/06/15 职场文书
公司年会主持词范文!
2019/05/07 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技