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 实现堆排序算法代码
Jun 05 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
python traceback捕获并打印异常的方法
Aug 31 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
python爬虫之遍历单个域名
Nov 20 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
Python3 读取Word文件方式
Feb 13 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
10个python爬虫入门实例(小结)
Nov 01 Python
PyCharm常用配置和常用插件(小结)
Feb 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
第十四节 命名空间 [14]
2006/10/09 PHP
PHP脚本数据库功能详解(下)
2006/10/09 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
详解python with 上下文管理器
2020/09/02 Python
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
多媒体教室标语
2014/06/26 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书