- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高等教育]数字图像处理第九章 图像分割
(a)原图 (b) ▽2h结果 (c)正值为白,负值为黑 (d)过零点 ic=imread(peppers.tif);
l=fspecial(laplacian,0);
icz=edge(ic,zerocross,l);
imshow(icz) fspecial(log,13,2)
edge(ic,log); edge(ic,zerocross,log); 两个结果相同 9.9Canny算子检测 一个边缘算子必须满足三个准则: 1) 低错误率:边缘算子应该只对边缘响应,并能找到所有的边,而对于非边缘应能舍弃。 2) 定位精度:被边缘算子找到的边缘象素与真正的边缘象素间的距离应尽可能的小。 3) 单边响应:在单边存在的地方,检测结果不应出现多边。 (3)幅值和方位角: (2)使用一阶有限差分计算偏导数的两个阵列P与Q: (1)求图像与高斯平滑滤波器卷积: (4)非极大值抑制(NMS ) :细化幅值图像中的屋脊带,即只保留幅值局部变化最大的点. *将梯度角的变化范围减小到圆周的四个扇区之一, *方向角: *幅值: (5)用双域值法检测和连接边缘 * 将低于阈值的所有值赋零值,得到图像的边缘阵列. * 阈值τ太低?假边缘; * 阈值τ取得太高?部分轮廊丢失. * 选用两个阈值: 更有效的阈值方案. 基本方法: 取高低两个阈值作用在幅值图N[i,j],t1=2t2, 得到两个边缘图, 高阈值和低阈值边缘图。 连接高阈值边缘图,出现断点时,在低阈值 边缘图中的8邻点域搜寻边缘点。 3. Canny边缘检测算法 (1)?用高斯滤波器平滑图像. (2)?用一阶有限差分计算梯度幅值和方向 (3)?对梯度幅值应用非极大值抑制 . (4)?用双阈值算法检测和连接边缘. ? [icc,t]=edge(ic,canny);
t
t =
0.0625 0.1563
imshow(icc) edge(ic,canny,[0,0.05]) edge(ic,canny,[0.01,0.5]) Hough变换问题的提出 ?? 在找出边界点集之后,需要连接,形成完整的边界图形描述 9.10Hough变换 ?? Hough变换的基本思想 ?? 对于边界上的n个点的点集,找出共线的点集和直线方程。 ?? 对于任意两点的直线方程:y = ax +b,构造一个参数a,b的平面,从而有如下结论: ?? xy平面上的任意一条直线y = ax +b ,对应在参数ab平面上都有一个点 ?? 过xy平面一个点(x,y)的所有直线,构成参数ab平面上的一条直线 ?? 如果点(x1,y1)与点(x2,y2)共线,那么这两点在参数ab平面上的直线将有一个交点 在参数ab平面上相交直线最多的点,对应的xy平面上的直线就是我们的解 Hough变换算法实现 ??◆ 由于垂直直线a为无穷大,我们改用极坐标形式:xcos θ + ysinθ = ρ ?? ◆ 参数平面为θ,ρ ,对应不是直线而是正弦曲线 ◆使用交点累加器,或交点统计直方图,找出相交线段最多的参数空间的点 ◆然后找出该点对应的xy平面的直线线段 xcos θ + ysinθ = ρ的推导 此处的ρ是直线到原点的距离, θ是直线的垂线与x轴的夹角。如果直线是垂直于x轴的则θ=0,就不存在a无穷大的问题。 假设有一点(p,q),且垂线与过这点的直线相交于此点,则有(p,q)=(rcosθ,rsinθ)。垂线的斜率为 tanθ=sinθ/cosθ。 现在令(x,y)是直线上的任一点,直线的斜率为 由于垂线的斜率是tanθ所以直线的斜率是 ?? 所以有 ?? 具体求解例子见书上P190-191 ?? Hough变换的扩展 Hough变换不只对直线,也可以用于圆: (x – a)2 + (y - b)2 = R2 这时需要三个参数(a,b,R)的参数空间。 如像找直线那样直接计算,计算量增大,不合适。 解决方法:只需要在a,b和R中选取a,R或b,R两个参数组成参数空间,运算量可以缩减,而且不影响结果。 9.11Hough变换在MATLAB中的实现 算法步骤: 1.在ρ、θ的极值范围内对其分别进行m,n等分,设一个二维数组的下标与ρi、θj的取值对应; 2.对图像上的所有边缘点作Hough变换,求每个点在θj(j=0,1,…,n)Hough变换后的ρi ,判断(ρi、θj)与哪个数组元素对应,则让该数组元素值加1; 3.比较数组元素值的大小,最大值所对应的(ρi、θj)就是这些共线点对应的直线方程的参数。 算法特点: 对ρ、θ量化过粗,直线参数就不精确,过
文档评论(0)