================================ 设计 ================================
1、输入一张图片(bmp),显示其形状
2、检测是否是直线(或其他的图形);如果是,就将其显示出来
================================ 分析 ================================
1、计算机视觉中经常需要识别或者定位某些几何图形,比如直线、圆等。
2、图像空间中的一条线对应Hough空间中的一个点。
3、本软件就是采用MyEclipse为开发环境,主要讲述了霍夫变换的基本原理和实现方法,实现基于霍夫变换的图像文件(bmp)文件格式下简单图形的识别,主要是对直线和圆的识别。
1、RGB
2、像素
黑色RGB(0, 0, 0)
白色RGB(255, 255, 255)
白色RGB值为16777215
1、Hough变换的核心是两个坐标系的变换。
2、对于直角坐标系中的一条直线L,进行Hough变换后,为一个点。
3、而过直线上某点在所有直线经过Hough变换在新的坐标系中,将会呈现为一条正弦线。
4、过直角坐标中一点P1的所有直线经过Hough变换成为一条正弦线s1,那么如果有另一个点P2将会得到s2,那么 s1和s2的交点一定是在直角坐标系中,过P1又过P2的直线。这样可以
得出结论,Hough坐标系中的交点,就是直线。而且越多的正弦线相交,证明越多的点在这条直线上。有了这样的思想,我们可以讨论Hough变换检测直线的方法了。
(1) 对图片预处理,这里必须说明的是,纯种的Hough变换只适应黑白图片,换句话说,在使用它之前,你已经提取出该图片的边缘了(假设0表示背景,1表示物体的特征点)。
(2) 找到图片中的“白点”也就是要处理的边缘,假设其在直角坐标系的下标为(x, y),对其进行坐标变换ρ=x*cosθ+y*sinθ,其中0<θ<2*pi。当然,在实际的操作中,θ要转变为离散的
数组θ1、θ2……θj,ρ也就是相应的有ρ1、ρ2……ρj。
(3) 判断(ρj, θj)与哪个数组元素对应,并让该数组H元素加1。
(4) 将数组H中的所有元素按照θ从小到大排序,然后取局部最大值对应的(ρj, θj)就是这些共线点对应的直线方程的参数。共线方程为
ρj = xcosθj + ysinθj,ρ>=0,0<=θ<PI
其中,ρ为l相对于原点的距离,θ为l与x轴的交角。
直线l上不同的点(x, y)在参数空间中被变换为一簇相交于p点的正弦曲线。若能确定参数空间中的p点(局部最大值),就实现了相应地标准霍夫变换的算法。
注意:使用霍夫变换检测圆与直线时候,一定要对图像进行预处理,灰度化以后,提取图像的边缘使用非最大信号压制得到一个像素宽的边缘, 这个步骤对霍夫变换非常重要.否则可能导
致霍夫变换检测的严重失真。
直线的变换角度为[0 ~ PI]之间,设置等份为360为PI/360,同时根据参数直线参数方程的取值范围为[-r, r]
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
源代码及论文.rar (47个子文件)
源代码及论文
二值图像.txt 209B
分析.txt 3KB
基于霍夫变换的形状检测算法研究与实现.pdf 1.08MB
毕业论文.txt 1KB
源代码
src
com
liyulin
hough
model
Point.java 282B
LineInfo.java 673B
line
HoughLine.java 5KB
THoughLine.java 5KB
circle
AutoHoughCircle.java 5KB
HoughCircle.java 5KB
TAutoHoughCircle.java 5KB
ui
HoughUI.java 8KB
util
PixelUitl.java 2KB
ImagePanel.java 1KB
bin
com
liyulin
hough
model
LineInfo.class 1KB
Point.class 386B
line
HoughLine.class 4KB
THoughLine.class 5KB
circle
AutoHoughCircle.class 3KB
HoughCircle.class 3KB
TAutoHoughCircle.class 3KB
ui
HoughUI$6.class 1KB
HoughUI$2.class 735B
HoughUI$3$1.class 2KB
HoughUI$7.class 1KB
HoughUI$7$1.class 2KB
HoughUI.class 5KB
HoughUI$4.class 1KB
HoughUI$4$1.class 2KB
HoughUI$5$1.class 2KB
HoughUI$3.class 1KB
HoughUI$6$1.class 2KB
HoughUI$5.class 2KB
HoughUI$1.class 4KB
util
PixelUitl.class 2KB
ImagePanel.class 1KB
hough
line
HoughLineFilter.class 5KB
AbstractBufferedImageOp.class 3KB
circle
HoughUI.class 4KB
HoughUI$1.class 1KB
CircleHough.class 4KB
test
ScreenPicSaver$1.class 484B
ScreenPicSaver$2.class 426B
ScreenPicSaver.class 9KB
.classpath 301B
.settings
org.eclipse.jdt.core.prefs 598B
.project 388B
共 47 条
- 1
资源评论
- GodAaron2015-01-23运行时容易出现堆内存溢出这个错误!
cc20150126
- 粉丝: 80
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功