OpenCV中Hough transform(霍夫变换)

霍夫变换(Hough Transform) 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。霍夫变换于1962年由PaulHough首次提出,最初的Hough变换是设计用来检测直线和曲线,起初的方法要求知道物体边界线的解析方程,但不需要有关区域位置的先验知识。这种方法的一个突出优点是分割结果的Robustness,即对数据的不完全或噪声不是非常敏感。然而,要获得描述边界的解析表达常常是不可能的。 阅读详情

霍夫变换所基于的公式:

P = X * COS(θ) + Y *SIN(θ)

      首先,明确图像坐标,在图像中横轴是从左向右增加,纵轴是从上向下增加,原点在左上角,在使用霍夫变换检测图像中的直线时,P是原点到直线的距离,θ是原点到直线垂线和X轴正方向在顺时针方向的夹角。

霍夫变换思想:

       我们建立一个累积数组acc[][],对于每一个给定的图像上的点(X0 , Y0)有一组对应的(p , θ)表示通过这个点的所有直线,我们累计acc[p][θ]++;依次计算图像中的每一个点。最后检查acc[][]他们他们最后的值就是图像上以p , θ 为参数的直线在图像中通过的点数。检查acc[]][]若其值大于等于threshold则被认为是一条直线。

OpenCV中基本霍夫变换的函数:

void HoughLines( InputArray image, OutputArray lines,
                              double rho, double theta, int threshold,
                              double srn=0, double stn=0 );

参数:

lines:存放检测到的直线

rho:是P的步长

theta:是θ的步长

threshold:是设定的最小投票数,也即acc[p][θ]>=threshold时才认定其为一条直线


函数HoughLines()只能得到直线的参数P ,θ并不知道检测到的直线的端点

霍夫变换的变形HoughLinesP()可以检测到直线的两个端点。

OpenCV的霍夫变换(Hough Transform)圆检测 Hough变换检测圆。霍夫变换也可以用于检测其他几何形体,事实上,可以用参数方程表示的几何体都可以尝试用霍夫变换进行检测。比如圆形。 阅读详情

相关推荐

Hough变换在opencv中的应用

作为cv中为数不多的检测算法,“霍夫曼变换”数学上很简洁,能检测直线、圆,稍加扩展就可用来检测任意2d图形,包括旋转等变形

skysmiler的专栏 2452

Hough 算法(霍夫变换)

Hough 变换(Hough Transform)是一种常用的检测图形的算法。它通过搜索特定形状(如直线,圆,椭圆等)在参数空间的累加器中的局部最大值来检测形状。Hough 变换主要用于检测图像中的基本形状,如直线,圆等。

广寒爱学习 1万+

Hough Transform 超详细学习笔记

使用英文作为章节名,大约 90% 内容为中文。

shizidushu的博客 1151

【OpenCV C++20 学习笔记】物体检测-Ballard和Guil霍夫变换

简要介绍使用generalizedHoughBallard和generalizedHoughGuil进行图片中的物体检测的方法

TeamLee的博客 1363

霍夫变换(Hough Transform)直线检测

在图像处理中,如果图像由已知形状和大小的物体组成,需要找出物体的形状的问题。在解决这些问题的许多可能方法中,一种是在图像中移动一个合适形状和大小的掩模,寻找图像与掩模的相关性,因由于形状变形,旋转、缩放等原因,特殊的掩模常常与在特处于是的数据中特体的表示相差太大。一种非常有效的解决问题的方法是Hough变换,本节中介绍Hough变换检测原理和相关知识。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。我们要注意到Hough变换的重要性质是对图像中直线的殘缺部分、

松子茶的专栏 3万+

树莓派4B(Raspbian buster系统)安装ROS Melodic(附带网络配置和远程桌面控制说明)

树莓派4B(Raspbian buster系统)安装ROS Melodic(附带网络配置和远程桌面控制说明) 一、硬件准备 二、软件准备 三、安装前的准备工作 四、开始ROS的安装 五、运行小乌龟 由于坑比较多希望大家安装的时候尽量不要跳步进行,一定要等每一步运行成功了再往下进行。 一、硬件准备 1、树莓派4B一个 2、SD卡一张(最好是16G以上的我的是用的64G的) 3、显示器、键盘、鼠标 二、软件准备 1、Raspberryimage (写系统使用的) 链接:https://pan.baidu.com

weixin_45315065的博客 1万+

【OpenCV】-霍夫变换

霍夫变换(Hough Transform)是图像处理技术中的一种特征提前技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果。霍夫变换运行两个坐标空间之间的变换将在一个空间中具有相同形状的曲线或者直线映射到另一个坐标空间的一个点形成峰值,从而把检测任意形状的问题转化为统计峰值问题。霍夫变换是一种用来寻找直线的方法,在使用霍夫变换之前,首先要对图像进行边缘检测的处理,即霍夫变换的直接输入只能是二值图像。OpenCV中的霍夫线变换有三种:(1)一条直线在图像二维

qq_44859533的博客 3767

封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)

自从换了工作就没有给大家分享一些干活,在加上陪伴自己的孩子没有时间更新文章了,这只能在晚上给大家写文档了,我最近在游戏公司上班,研究封包。我把这些东西都做成了笔记,我想有些东西是大家都想弄明白d ...

寒梅独自开 1万+

OpenCV学习(4.13) 霍夫变换

概率Hough变换相比于标准Hough变换的优点是它更快,因为它不需要为每个边缘点计算和投票所有的参数空间。此外,它通常能够给出更准确的结果,因为它考虑了边缘点之间的局部关系。这种方法的缺点是它可能不会检测到图像中所有的直线,特别是当直线的支持点较少时。因此,概率Hough变换适用于直线较为密集的场景,而在直线稀疏的情况下可能不如标准Hough变换有效。在霍夫变换中,你可以发现即使是一条仅有两个参数的直线,也需要用到大量的计算。概率霍夫变换是我们已知的,针对霍夫变换的优化方案。

PLANTTHESON的博客 1818

STM32F103C8T6实战:从零搭建三相SPWM逆变器(附MATLAB仿真、PCB、源码)

本文详细介绍了如何使用STM32F103C8T6单片机从零搭建三相SPWM逆变器,涵盖硬件选型、PCB设计、SPWM算法实现及MATLAB仿真。项目提供完整的工程文件,包括源码、PCB设计和仿真模型,适合电子工程师和学生进行实践学习。通过本教程,读者可以掌握逆变器设计的核心技术和调试方法。

weixin_30458043的博客 455

TSP:车为什么能和云端交互?

TSP:车为什么能和云端交互?

天赐好车的博客 415

【OpenCV学习笔记】之霍夫变换(Hough Transform)

一、霍夫变换(Hough transform) 常见的理论概述是这样的: 1、简单介绍        霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这...

zhu_hongji的博客 2万+

飞腾UEFI配置GPIO—飞腾FT2000/4 (D2000/8) GPIO引脚配置及使用

讲解了在飞腾UEFI代码中如何添加GPIO配置相关代码,并以GPIO1_B0—B7为例,将这8个引脚配置为GPIO工作模式并默认输出低电平

qq_30135687的博客 5350

OpenCV的霍夫变换(Hough Transform)直线检测

霍夫变换(Hough Transform)的主要思想:一条直线在平面直角坐标系(x-y)中可以用y=ax+b式表示,对于直线上一个确定的点(x0,y0),总符合y0-ax0=b,而它可以表示为参数平面坐标系(a-b)中的一条直线。因此,图像中的一个点对应参数平面的一条直线,同样,图像中的一条直线对应参数平面上的一个点。 笔记包括两个测试,基本Hough变换和概率Hough变换的直线检测。

不眠旅行 7823

2026年沐曦集成电路数字IC笔试试卷带答案

本文摘要: 这是一份数字IC设计笔试模拟题,包含单选题、波形分析、多选题和代码设计题。重点考察ASIC设计流程(如逻辑综合将RTL转为门级网表)、时序分析(建立时间余量计算)、跨时钟域处理(格雷码应用)、复位机制、状态机设计等核心知识点。涉及沐曦特色考点如GPU架构(SIMT模型)、国产GPU芯片(曦云C系列)及MXMACA软件栈。代码题要求实现50%占空比三分频电路,综合考察Verilog设计能力。试题强调PPA优化、低功耗技术等工程实践要点,覆盖数字IC前端设计全流程核心内容。(149字)

Open 262

深入理解SQL注入中的union select 1,2,3....

UNION 用于合并两个查询的结果集

渗透之路,攻防之间皆学问 2万+

java 霍夫变换_OpenCV霍夫变换(Hough Transform)直线检测详解

霍夫变换(Hough Transform)的主要思想:一条直线在平面直角坐标系(x-y)中可以用y=ax+b式表示,对于直线上一个确定的点(x0,y0),总符合y0-ax0=b,而它可以表示为参数平面坐标系(a-b)中的一条直线。因此,图像中的一个点对应参数平面的一条直线,同样,图像中的一条直线对应参数平面上的一个点。基本Hough变换检测直线:由于同一条直线上的不同点在参数平面中是会经过同一个点...

weixin_36463040的博客 429

华为od 面试八股文_前端_01_含答案

华为od 面试八股文_前端_01_含答案

MISAYAONE的博客 2750

一文带你了解python opencv中霍夫变换(Hough transform)的常用操作

本文介绍了python opencv(cv2)中的霍夫变换(hough transform)常用操作,并结合具体应用案例进行讲解

LLLYLL的博客 8604

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

c语言 霍夫变换检测直线,OpenCV霍夫变换(Hough Transform)直线检测详解

霍夫变换(Hough Transform)的主要思想:一条直线在平面直角坐标系(x-y)中可以用y=ax+b式表示,对于直线上一个确定的点(x0,y0),总符合y0-ax0=b,而它可以表示为参数平面坐标系(a-b)中的一条直线。因此,图像中的一个点对应参数平面的一条直线,同样,图像中的一条直线对应参数平面上的一个点。基本Hough变换检测直线:由于同一条直线上的不同点在参数平面中是会经过同一个点...

weixin_35436993的博客 805

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

python霍夫变换检测直线_Python OpenCV 霍夫(Hough Transform)直线变换检测应用

Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。本篇博客是这个系列的第 34 篇。基础知识铺垫上篇博客 咱们一起学习了霍夫直线检测的原理,本篇就从应用层对其进行学习啦。学习了原理之后,在查看函数原型,发现确实简单了许多。霍夫直线变换函数原型在 OpenCV 中提供了两个霍夫直线检测的函数,一个是标准霍夫变换,另一个是概率霍夫变换。先学习一下标准霍夫变换吧,该变化方式也叫...

weixin_30456719的博客 2637

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍夫变换(Hough Transform)算法原来详解和纯C++代码实现以及OpenCV中的使用示例

霍夫变换(Hough Transform)是一种经典的,广泛用于,例如直线、圆、椭圆等。其核心思想是将图像空间中的“点”映射到参数空间中的“曲线”,从而将。

qq_36812406的博客 628

OpenCV-Python——第21章:霍夫(Hough)直线变换(直线检测)

目录 0 原理 1 OpenCV中的霍夫变换 0 原理 霍夫变换在检测各种形状的的技术中非常流行,如果你要检测的形状可以用数学表达式写出,你就可以是使用霍夫变换检测它。及时要检测的形状存在一点破坏或者扭曲也可以使用。我们下面就看看如何使用霍夫变换检测直线。 首先将一条直线用一个点表示,这样用一个点表示直线上所有的点,一开始人们使用斜截式y=kx+q中的(k,q)来表示一条...

YukinoAI的博客 2万+

OpenCV-Python Hough 直线变换

OpenCV-Python Hough 直线变换

m0_37302966的博客 952

OpenCV CUDA模块霍夫变换------在 GPU 上执行霍夫圆变换(Hough Circle Transform)类HoughCirclesDetector

cv::cuda::HoughCirclesDetector 是 OpenCV CUDA 模块中的一个类,用于在 GPU 上执行霍夫圆变换(Hough Circle Transform),从而检测图像中的圆形。相比于 CPU 版本的 cv::HoughCircles(...),它利用了 GPU 加速以提高处理速度,尤其适合大规模图像或实时应用。

jndingxin的专栏 1134

opencv学习日志23--霍夫变换1

前言 这篇文章主要讲述opencv中霍夫变换的使用。 一、霍夫变换1 //第二题 霍夫划线 #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { cv::Mat dst; cv::Mat src = imread("C://Users//john//Desktop//1.jpg",0); std::vector<cv

taiyuezyh的博客 2665
上一篇: Visual Studio调试技巧
下一篇: Hough Transform(霍夫变换)检测Circle(圆)的几种方法
知行且执行
博客等级 码龄14年 38粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值