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之永远强大的函数
Sep 14 Python
Python实现的双色球生成功能示例
Dec 18 Python
python实时监控cpu小工具
Jun 21 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
将Python字符串生成PDF的实例代码详解
May 17 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
Python基础详解之邮件处理
Apr 28 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实现的常见排序算法汇总
2014/09/08 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
document.createElement()用法
2013/03/13 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
Vue 实现树形视图数据功能
2018/05/07 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
详解vue 命名视图
2019/08/14 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
情侣吵架检讨书
2014/02/05 职场文书
学校中秋节活动总结
2015/03/23 职场文书
2019 入党申请书范文
2019/07/10 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python