网站大量收购独家精品文档,联系QQ:2885784924

数字图像处理试验报告.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理试验报告 问题描述及分析 A、问题描述 下图为检测系统中的一张画面,黑色区域为待检测的零件,要求: 检测零件的三个角的角度数; 检测圆孔的平均直径、最大直径、最小直径; 检测圆孔与三角形中心位置偏差。 图1 原始图像 B.问题分析 由图1,可以看出,需要检测的零件形状简单,是由一个大三角形,里面去掉一个圆组成。虽然,整张图像光照不均匀,要提取出零件有点难度(事实上,只需进行局部直方图均衡化即可提取出目标对象),但是零件与其周围的背景容易区分,因此,可以通过边缘检测,将零件的边缘检测出来。因此,可以得到零件的边缘坐标数据,从而可以通过最小二乘法求出三角形三边线性回归模型参数和圆模型的参数。 二.检测步骤 1.预处理,得到构成三角形三边的点集合构成圆的点集2.最小二乘拟合,得到直线和圆的参数(直线模型参数分别为k1,k2, k3,b1,b2,b3;圆模型参数为:a,b,r)。 3.计算零件三个角的角度数、圆孔的平均直径、最大直径、最小直径、以及圆孔和三角形中心位置偏差。 im = medfilt2(im);中值滤波可以比较好的保持边沿。 2.边缘检测 bwedge = edge(mat2gray(im./exp(im_gauss)), sobel, 0.023); 首先进行亮度均衡,然后采用sobel算子进行边缘检测。sobel算子如下: 水平:[1 2 1;0 0 0;-1 -2 -1] 垂直:[1 0 -1;2 0 -2;1 0 -1] 3.降噪2 L = bwlabeln(bwedge, 8); S = regionprops(L, Area); bwedge = ismember(L, find([S.Area] = 10)); bwedge(1:10, 1:wth) = 0; bwedge(1:10, wth-10:wth) = 0; bwedge(1:hgt, 1:10) = 0; bwedge(1:hgt, wth-10:wth) = 0; 第一步:标记8-连通分量; 第二步:计算每个连通分量的面积; 第三步:删除面积小于10的连通分量 第四步:去除图像边沿的噪声 4.直线检测 第一步:初步检测出直线的三角形三边线段的端点:point11,point12,point21,point22,point31,point32。 [H, T, R] = hough(bwedge); P = houghpeaks(H, 3); lines = houghlines(bwedge, T, R, P); point11 = lines(1).point1; point12 = lines(1).point2; point21 = lines(2).point1; point22 = lines(2).point2; point31 = lines(3).point1; point32 = lines(3).point2; 第二步:求每条边的顶点集合linepts1,linepts2,linepts3。 linepts1 = ObtainLine(bwedge, point11, point12); linepts2 = ObtainLine(bwedge, point21, point22); linepts3 = ObtainLine(bwedge, point31, point32); 第三步:建立直线模型,获取直线参数。 直线模型为: 误差平方和为: 求k, b: 求得直线的参数为: k1, b1; k2, b2; k3, b3; beta1 = atand(k1); beta2 = atand(k2); beta3 = atand(k3); theta1 = beta1 - beta2; theta2 = beta1 - beta3; theta3 = beta3 - beta2; 对于小于0的夹角,theta=-theta; 对于大于90的夹角,theta = 180-theta;x1 = -(b1-b2)/(k1-k2); y1 = k1*x1+b1; x2 = -(b3-b2)/(k3-k2); y2 = k2*x2+b2; x3 = -(b1-b3)/(k1-k3); y3 = k3*x3+b3; 第五步:获取三角形的重心 5.圆检测 第一步:将图d减图e得到图f。 第二步:同降噪2。 第三步:获取圆的点集ccle。 第四步:建立圆模型,获取圆的参数。 圆的表达式: 误差平方和: 求a, b, c: 从而得到a, b, c。 因此圆的中心坐标及半径为: 第五步:求圆的各直径长

文档评论(0)

you-you + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档