当前位置: 首页 > article >正文

图像分割——Hough变换检测法

一 Hough变换的基本思想

在这里插入图片描述
在这里插入图片描述

二 算法实现:

使用交点累加器,找出参数空间相交线段最多的点,然后根据该点参数给出对应的xy平面直线方程。
算法步骤:
1.在ρ、θ的极值范围内对其分别进行m、n等分,并设一个二维数组A(m,n),用来统计交点计数值

在这里插入图片描述
2.对图像上的所有边缘点作Hough变换,求每个点在θj(j=0,1,…,n-1)Hough变换后的ρi ,判断(ρi、θj)与哪个数组元素对应,则让该数组元素值加1;
3.比较数组元素值的大小,最大值所对应的(ρi、θj)就是这些共线点对应的直线方程的参数。
算法特点:
对ρ、θ量化过粗,直线参数就不精确,过细则计算量增加。因此,对ρ、θ量化要兼顾参数量化精度和计算量。Hough变换检测直线的抗噪性能强,能将断开的边缘连接起来。此外Hough变换也可用来检测曲线。

三 Hough变换的扩展

Hough变换不只对直线,也可以用于圆:
在这里插入图片描述
这时需要三个参数(a,b,R)的参数空间。如像找直线那样直接计算,计算量增大,不合适。

1 解决途径

若已知圆的边缘元(当然图中还有其它非圆的边沿点混在一起),而且边缘方向已知,则可减少一维处理,把上式对x取导数,有
在这里插入图片描述
这表示参数a和b不独立,只需用二个参数(例如a和R)组成参数空间,计算量就缩减很多。

2 对于椭圆

设椭圆方程为
在这里插入图片描述
取导数有
在这里插入图片描述
已知椭圆上一点,则只有三个独立参数。只需要从(a , b , x0 , y0)中选择三个参数进行检测。

3 对于任意曲线

在这里插入图片描述
对已知形状建立了R表格后,开辟一个二维存储区,对未知图像各点都来查已建立的R表,然后计算(xc , yc),若未知图像各点计算出的(xc , yc)很集中,就表示已找到该形状的边界。集中的程度就是找最大值。

4 具体步骤如下:

(1)对将要找寻的某物边界建立一R表,这是一个二维表,以φi的步进值求r和α;
(2)在需要判断被测图像中有无已知某物时,也可对该图某物各点在内存中建立一存储区,存储内容是累加的。把xc , yc从最小到最大用步进表示,并作为地址,记作A(xcmin~max, ycmin~max),存储阵列内容初始化为零;

(3)对图像边界上每一点(xi , yi),计算φ(x),查原来的R计算(xc , yc),;
在这里插入图片描述
(4)使相应的存储阵列A(xc , yc)加1,即
在这里插入图片描述
(5)在阵列中找一最大值,就找出了图像中符合要找的某物体边界。


http://www.kler.cn/a/398278.html

相关文章:

  • 如何让手机ip变成动态
  • 222. 完全二叉树的节点个数【 力扣(LeetCode) 】
  • 【Golang】——Gin 框架中的路由与请求处理
  • day-83 最少翻转次数使二进制矩阵回文 II
  • WebSocket协议在Java中的整合
  • 力扣刷题日记之150.逆波兰表达式求值
  • C语言——判断是不是字母
  • YOLOv7-0.1部分代码阅读笔记-train.py
  • SQLite 安装指南
  • MAC上的Office三件套报53错误解决方案(随笔记)
  • 【MogDB】MogDB5.2.0重磅发布第八篇-支持PLSQL编译全局缓存
  • 如何在 Ubuntu 上安装 Mattermost 团队协作工具
  • 【ArcGIS微课1000例】0127:计算城市之间的距离
  • 9.2 使用haarcascade_frontalface_default.xml分类器检测视频中的人脸,并框出人脸位置。
  • 企业项目级IDEA设置类注释、方法注释模板(仅增加@author和@date)
  • 你的服务器缓存中毒过么?
  • Essential Cell Biology--Fifth Edition--Chapter one (8)
  • ssm126基于HTML5的出租车管理系统+jsp(论文+源码)_kaic
  • 牛客周赛第一题2024/11/17日
  • 深入理解Flutter生命周期函数之StatefulWidget(一)
  • 【Qt聊天室】客户端实现总结
  • 华为欧拉系统使用U盘制作引导安装华为欧拉操作系统
  • Kubernetes 10 问,测测你对 k8s 的理解程度
  • 【设计模式】入门 23 种设计模式(代码讲解)
  • 在linux里如何利用vim对比两个文档不同的行数
  • 小智的疑惑——决赛4 #传智