Python-OpenCV 笔记2 – 霍夫变换(Hough)


1、标准霍夫变换 HoughLinesP

函数原型:

HoughLines(image, rho, theta, threshold, lines=None, srn=None, stn=None, min_theta=None, max_theta=None)
  • image:8位、二值单通道图片
  • rho:直线半径的搜索步长,单位为像素
  • theta:直线角度使得搜索步长,单位为弧度
  • threshold:累加阈值,只有属于同一直线的点数超过该阈值才会被检测为直线
  • lines :存储检测结果,直线用半径和角度表示
  • min_theta :检测直线的最小角度,[0, max_theta]
  • max_theta :检测直线的最大角度
import cv2
import numpy as np# 读取图片>转为灰度图>canny边缘检测>概率霍夫变换
img = cv2.imread('1.jpg')
gray = cv2.cvtColor(img,cv.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
lines = cv2.HoughLines(edges,1,np.pi/180,200)# 根据极坐标计算平面坐标
for line in lines:rho,theta = line[0]a = np.cos(theta)b = np.sin(theta)x0 = a*rhoy0 = b*rhox1 = int(x0 + 1000*(-b))y1 = int(y0 + 1000*(a))x2 = int(x0 - 1000*(-b))y2 = int(y0 - 1000*(a))# 画线cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)cv2.imshow('houghlines', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2、概率霍夫变换 HoughLinesP

函数原型:

HoughLinesP(image, rho, theta, threshold, lines=None, minLineLength=None, maxLineGap=None)
  • image:8位、二值单通道图片
  • rho:直线半径的搜索步长,单位为像素
  • theta:直线角度使得搜索步长,单位为弧度
  • threshold:累加阈值,只有属于同一直线的点数超过该阈值才会被检测为直线
  • lines :存储检测结果1x1x4的矩阵,直线用两点坐标表示(x1, y1, x2, y2)
  • minLineLength :检测为直线的最短长度,单位为像素
  • maxLineGap:直线断点的最大距离
import cv2
import numpy as np  # 读取图像>高斯模糊>边缘检测
img = cv2.imread("1.jpg")
img = cv2.GaussianBlur(img, (3,3), 0)
edges = cv2.Canny(img, 50, 150, apertureSize = 3)# 概率霍夫变换
minLineLength = 200
maxLineGap = 15
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 80, minLineLength, maxLineGap)
# lines = np.squeeze(lines)# 画线
for line in lines:x1,y1,x2,y2 = line[0]cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)cv2.imshow('HoughLinesP', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Python-OpenCV 笔记3 -- 霍夫变换(Hough)相关推荐

  1. python+OpenCV笔记(二十四):Shi-Tomasi角点检测

    Shi-Tomasi角点检测 原理 python+OpenCV笔记(二十二):角点检测原理(Harris角点检测原理.Shi-Tomasi角点检测原理)https://blog.csdn.net/qq ...

  2. python+OpenCv笔记(十三):边缘检测——Sobel检测算子

    Sobel检测算子 概述: Sobel边缘检测算法比较简单,实际应用中效率比canny边缘检测效率要高,但是边缘不如Canny检测的准确,但是很多实际应用的场合,sobel边缘却是首选,Sobel算子 ...

  3. Opencv 笔记8 霍夫变换

    一.霍夫变换Hough Hough变换是图像处理中从图像中识别几何形状的基本方法之一.Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点.这 ...

  4. python+OpenCV笔记(三十七):检测运动物体——使用MOG/KNN背景差分器

    目录 一.基本背景差分器 二.MOG背景差分器 流程 代码编写 三.KNN背景差分器 目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是稳定的,当摄像头 ...

  5. python+OpenCV笔记(三十五):特征匹配——基于FLANN的匹配、基于FLANN进行单应性匹配

    目录 一.基于FLANN的匹配 FLANN匹配流程: 代码编写 二.基于FLANN进行单应性匹配 什么是单应性? FLANN进行单应性匹配流程 代码编写 FLANN库全称是Fast Library f ...

  6. python+OpenCv笔记(六):图像的几何变换(缩放、平移、旋转、仿射、透射、金字塔)

    一.图像的缩放 OpenCv API: cv2.resize(src, dsize, fx, fy, interpolation) 参数: src:输入的图像 dsize:绝对尺寸,直接将图像调整为指 ...

  7. python+OpenCv笔记(七):图像的形态学操作(腐蚀与膨胀、开闭运算、礼帽与黑帽)

    一.腐蚀与膨胀 腐蚀就是原图中高亮的部分被蚕食,效果图拥有比原图更小的高亮区域. 腐蚀的作用是:消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点. 膨胀就是使原图中高亮的部分扩张,效果图拥有比 ...

  8. python+OpenCv笔记(十七):模板匹配

    模板匹配 OpenCV框架提供了用于对象检测.跟踪和计数的许多不同方法.其中,模板匹配是OpenCV中最基本的对象检测方法之一. OpenCV API: res = cv.matchTemplate( ...

  9. python+OpenCv笔记(二):绘制几何图形

    一.绘制直线 cv.line(img,pt1,pt2,color,thickness,lineType) 参数: img:要绘制的图像 pt1 pt2:绘制的起点与终点 color:颜色 thickn ...

  10. python+OpenCV笔记(二十):滤波函数——filter2D

    filter2D用于将自定义的滤波器应用于图像,需要为这个函数提供的一个重要参数就是核矩阵. 该函数非常强大,可以生成很多种不同的结果,包括与之前的模糊函数相同的结果,不同的核还可以形成很多不同的滤波 ...

最新文章

  1. Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中
  2. MySQL的binary类型操作
  3. 计算两个日期之间有多少天多少小时多少分钟
  4. Java8 ArrayBlockingQueue 源码阅读
  5. Java程序员从笨鸟到菜鸟之(九十九)深入java虚拟机(八)开发自己的类加载器...
  6. cbow word2vec 损失_Word2Vec的核心思想
  7. guava缓存数据到本地_扩展Guava缓存以溢出到磁盘
  8. 8597 石子划分问题 dpdp,只考虑第一次即可
  9. android数据库开发案例教程,Android Studio项目开发教程 第6章 数据库编程(30页)-原创力文档...
  10. cfd软件对电脑配置要求_这种网格划分策略,让洁净和空调CFD实施周期压缩至0.3倍...
  11. 牛津美女硕士放弃百万年薪,用废弃物做轻奢包,马斯克妈妈也来捧场
  12. 网友希望一加7像iPhone XR一样流畅 刘作虎:iPhone很卡
  13. CheckstyleException: cannot initialize module TreeWalker - TreeWalker is not allowed as a
  14. python记录输入次数_如何计算用户输入错误的次数
  15. 产品技术人必备干货:产品开发流程(完整版)
  16. 算法导论第三版 第一章答案
  17. 动态设置option标签默认选中的两种方法
  18. Catia抛物线建模_基于CATIA的方程曲线设计建模研究
  19. 下载正版Origin Pro 2022 教程 及 如何 激 活
  20. 括弧匹配检验(括号匹配问题)

热门文章

  1. Android ImageView图片代码实现按屏幕宽度等比例缩放
  2. 图像缩放的双线性内插值算法的原理解析
  3. oracle学习之三--多表查询
  4. 关于JavaScript中Function Declaration与Function Expression的进一步说明
  5. object.defineProperty
  6. UNWAVERING SPIRIT AND VALUES
  7. 二进制八进制十六进制之间的快速转换------ 心算笔算方法总结
  8. Spring MVC 错误
  9. hiho #1485 : hiho字符串(滑动窗口)
  10. SQLSERVER 的联接查询写法