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入门篇之条件、循环
Oct 17 Python
Python多线程下载文件的方法
Jul 10 Python
Python正则表达式教程之二:捕获篇
Mar 02 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
python实现简单名片管理系统
Nov 30 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
手把手教你安装Windows版本的Tensorflow
Mar 26 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
Python运算符+与+=的方法实例
Feb 18 Python
python 逐步回归算法
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
文件系统基本操作类
2006/11/23 PHP
基于PHP array数组的教程详解
2013/06/05 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
vue实现循环切换动画
2018/10/17 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python cs架构实现简单文件传输
2020/03/20 Python
python实现随机梯度下降法
2020/03/24 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python默认参数调用方法解析
2020/02/09 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
python 基于wx实现音乐播放
2020/11/24 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物