- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工业摄影测量技术
基于Matlab图像处理软件的设计
姓名:
学号:
杨潇
M201370503
学科专业:
指导教师:
精密仪器及机械
唐立新 教授
提交日期:
2013.11.07
一.摘要
基于Matlab的数字图像处理
Matlab对于技术计算来说是一种高性能的语言。它以易于应用的环境集成了计算、可视化和编程,在该环境下,问题及其解以我 们熟悉的数学表示法来表示。本软件主要通过matlab实现以下几个功能:
1.Log算子边缘提取
2.Canny算子边缘提取
3.几种滤波器的实现
4.数出图像中米粒个数
5.将全方位图像展开
6.分割图像中环形针并标出其质心及方向。
本次简易的图像处理软件是利用Matlab的GUI界面来实现。
关键字:matlab,Log,Canny,滤波器,数米粒,图像展开,方位辨识
基本图像处理
本软件界面如图2.1所示:
图2.1 软件界面
界面设计是通过任务要求来设计,包含Log算子边缘提取、Canny算子边缘提取、滤波、数数目、图像展开及方位分析。左右两个显示屏分别显示图像处理前后的图像。
Log算子边缘提取的实现
Log算子可有效的滤除噪声信号并提取出清晰的边缘轮廓。具体分为以下4步:
对图像进行高斯平滑滤波,去除噪声信号
关键代码:
n1=floor((n+1)/2); %计算高斯模板中心
for i=1:n
for j=1:n
b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(2*sigma)); %高斯滤波函数
end
end
A=conv2(I,b,same); %高斯滤波
其中,n为高斯模板大小,sigma为方差
利用二维拉普拉斯函数进行二阶求导争强边缘信号
关键代码:
for i=2:w-1
for j=2:h-1
f=A(i+1,j+1)+A(i+1,j-1)+A(i-1,j-1)+A(i-1,j+1)+A(i+1,j)+A(i-1,j)+A(i,j+1)+A(i,j-1)-8*A(i,j);%高斯型拉普拉斯算子
其中,w,h分别表示图像的长宽。通过图像A与拉普拉斯算子进行卷积,从而突出了边缘信号。
对边缘进行过零检测
使用线性内插方法在亚像素分辨率水平上估计边缘的位置
由于对于后两步算法掌握不是很好,顾只对其进行阈值比较二值化
关键代码:
e=zeros(w,h);%创建数组
e(find(ys))=1; %阈值判断二值化,零交叉判断边缘最大值
Y为图像,S为二值化阈值,经测试,选取S=120为较好效果。下面是log算子边缘提取效果:
图2.2 Log算子效果图
Canny算子边缘提取的实现
图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。 根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。
Canny算子边缘提取可分为4步
用高斯滤波器平滑图象,去除噪声信号
关键代码:k1=filter2(fspecial(gaussian),I);%对图像进行3*3模版的高斯平滑
其中,I为输入的图像
用一阶偏导的有限差分来计算梯度的幅值和方向
关键代码:
%求解x,y方向的差分,幅值和方向
for i=1:m-1
for j=1:n-1
Gx(i,j)=(k1(i,j+1)-k1(i,j)+k1(i+1,j+1)-k1(i+1,j))/2;%计算X向差分
Gy(i,j)=(k1(i,j)-k1(i+1,j)+k1(i,j+1)-k1(i+1,j+1))/2;%计算Y向差分
M(i,j)=sqrt(Gx(i,j)^2+Gy(i,j)^2); %计算梯度值
a(i,j)=atan2(Gy(i,j),Gx(i,j)); %计算梯度方向
end
End
对梯度幅值进行非极大值抑制
仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。(non-maxima suppression,NMS)解决方法:利用梯度的方向。 图2.3 非极大值抑制梯度方向示意图四个扇区的标号为0到3,对应3*3邻域的四种可能组合。 在每一点上,邻域的中心象素M与沿着梯度线的两个象素相比。如果M的梯度值不比沿梯度线的两个相邻象素梯度值大,则令M=0。即:
关键代码:%定义梯度方向范围
if a(i,j)=-1/8*pia(i,j)1/8*pi
a(i,j)=0;
......
else
文档评论(0)