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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
介绍Python中几个常用的类方法
Apr 08 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
python迭代器与生成器详解
Mar 10 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
python实现输入数字的连续加减方法
Jun 22 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
python实现简单银行管理系统
Oct 25 Python
python循环输出三角形图案的例子
Nov 22 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 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笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
Python实现excel转sqlite的方法
2017/07/17 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python操作excel的方法
2018/08/16 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
Tostadora意大利:定制T恤
2019/04/08 全球购物
秋季校运会广播稿100字
2014/09/18 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
消防安全培训工作总结
2015/10/23 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
Golang连接并操作MySQL
2022/04/14 MySQL
Ruby处理YAML和json数据
2022/04/18 Ruby
ant design charts 获取后端接口数据展示
2022/05/25 Javascript
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技