工业摄影测量技术。
基于matlab图像处理软件的设计。
基于matlab的数字图像处理。
matlab对于技术计算来说是一种高性能的语言。它以易于应用的环境集成了计算、可视化和编程,在该环境下,问题及其解以我们熟悉的数学表示法来表示。本软件主要通过matlab实现以下几个功能:
算子边缘提取。
算子边缘提取。
3.几种滤波器的实现。
4.数出图像中米粒个数。
5.将全方位图像展开。
6.分割图像中环形针并标出其质心及方向。
本次简易的图像处理软件是利用matlab的gui界面来实现。
关键字:matlab,log,canny,滤波器,数米粒,图像展开,方位辨识。
本软件界面如图2.1所示:
图2.1 软件界面。
界面设计是通过任务要求来设计,包含log算子边缘提取、canny算子边缘提取、滤波、数数目、图像展开及方位分析。左右两个显示屏分别显示图像处理前后的图像。
算子边缘提取的实现。
log算子可有效的滤除噪声信号并提取出清晰的边缘轮廓。具体分为以下4步:
1)对图像进行高斯平滑滤波,去除噪声信号。
关键**: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为方差。
2)利用二维拉普拉斯函数进行二阶求导争强边缘信号。
关键**: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与拉普拉斯算子进行卷积,从而突出了边缘信号。
3)对边缘进行过零检测。
4)使用线性内插方法在亚像素分辨率水平上估计边缘的位置。
由于对于后两步算法掌握不是很好,顾只对其进行阈值比较二值化。
关键**:e=zeros(w,h);%
e(find(y>s))=1
y为图像,s为二值化阈值,经测试,选取s=120为较好效果。下面是log算子边缘提取效果:
图2.2 log算子效果图。
算子边缘提取的实现。
图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。
根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是canny边缘检测算子。
canny算子边缘提取可分为4步。
1)用高斯滤波器平滑图象,去除噪声信号。
关键**:k1=filter2(fspecial('gaussian'),i);%3*3???
其中,i为输入的图像。
2)用一阶偏导的有限差分来计算梯度的幅值和方向。
关键**:??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
endend
3)对梯度幅值进行非极大值抑制。
仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。(non-maxima suppression,nms)
解决方法:利用梯度的方向。
图2.3 非极大值抑制梯度方向示意图。
四个扇区的标号为0到3,对应3*3邻域的四种可能组合。
在每一点上,邻域的中心象素m与沿着梯度线的两个象素相比。如果m的梯度值不比沿梯度线的两个相邻象素梯度值大,则令m=0。
即: 关键**:
if a(i,j)>=1/8*pi&&a(i,j)<1/8*pi
a(i,j)=0;
elseif (a(i,j)>=5/8*pi&&a(i,j)<7/8*pi)||a(i,j)>=3/8*pi&&a(i,j)<-1/8*pi)
a(i,j)=3;
elsea(i,j)=0;
if a(i,j)==0
if m(i,j)m1(i,j)=0;
endend
if a(i,j)==3
if m(i,j)m1(i,j)=0;
endend
经过非极大值抑制后效果如图2.4
图2.4 非极大值抑制效果图。
4)用双阈值算法检测和连接边缘。
双阈值算法。双阈值算法对非极大值抑制图象作用两个阈值τ1和τ2,且2τ1≈τ2,从而可以得到两个阈值边缘图象n1[i,j]和n2[i, j]。由于n2[i,j]使用高阈值得到,因而含有很少的假边缘,但有间断(不闭合)。
双阈值法要在n2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法就在n1[i,j]的8邻点位置寻找可以连接到轮廓上的边缘,这样,算法不断地在n1[i,j]中收集边缘,直到将n2[i,j]连接起来为止。设置高低阈值分别为40,20.
关键**:step4 ??
m2=m1m3=m1
x1=str2num(get('string
x2=str2num(get('string'))高?
for i=2:m-1
for j=2:n-1
if m2(i,j)m2(i,j)=0;
endif m3(i,j)m3(i,j)=0;
endend
end至此获得了2个高低阈值处理后的图像,如图2.5
图2.5 双阈值图像。
连接图像关键**:
canny=m3
for i=2:(m-2)
for j=2:(n-2)
if isequal(canny(i,j),0)
if ~isequal(m2(i,j),0)
if ~isequal(sum(sum((canny(i-1:i+1,j-1:j+1)))canny(i,j))
canny(i,j)=m2(i,j);
endend
endend
end连接后效果如图2.6
图2.6 canny算子效果图。
3.几种滤波器的实现。
1)理想低通滤波器。
一个理想的低通滤波器的传递函数由下式确定:
h(u,v)=1 d(u,v)≤d0
0 d(u,v)>d0
式中是从点(u,v)到频率平面的原点的距离。d0为滤波器的截止频率。
关键**:dd=sqrt((i-a0)^2+(j-b0)^2);
if dd<=d0 %?
h=1;else
h=0;end
f(i,j)=h*f(i,j);
设置截止频率为40,效果如图2.7
图2.7 理想低通滤波效果图。
2)理想高通滤波器。
一个二维理想高通滤波器的传递函数为。
h(u,v)= 0 d(u,v)≤d0
1 d(u,v)>d0
式中d(u,v),d0定义同上。
关键**:dd=sqrt((i-a0)^2+(j-b0)^2);
if dd>=d0 %?
h=1;else
h=0;end
f(i,j)=h*f(i,j);
设置截止频率为40,效果如图2.8
图2.8 理想高通滤波效果图。
3)buttonworth低通滤波器。
一个n阶butterworth低通滤波器的传递函数为:
式中n为阶数,其余同上。
关键**:dd=sqrt((i-a0)^2+(j-b0)^2);
h=1/(1+(dd/d0)^(2*n));
f(i,j)=h*f(i,j);
设置截止频率为40,阶数为2,效果如图2.9
图2.9 butterworth低通滤波效果图。
4)buttonworth高通滤波器。
一个n阶butterworth高通滤波器的传递函数为:
式中n为阶数,其余同上。
关键**:dd=sqrt((i-a0)^2+(j-b0)^2);
h=1/(1+(d0/dd)^(2*n));
f(i,j)=h*f(i,j);
设置截止频率为40,阶数为2,效果如图2.10
图2.10 butterworth高通滤波效果图。
5)guass低通滤波器。
关键**:dd=sqrt((i-a0)^2+(j-b0)^2);
h=exp(-dd^2/(2*d0^2));
f(i,j)=h*f(i,j);
设置截止频率为40,效果如图2.11
图2.11 guass低通滤波效果图。
6)guass高通滤波器。
关键**:dd=sqrt((i-a0)^2+(j-b0)^2);
基于LMS的MATLAB大作业任思佳
matlab大作业。基于lms算法的自适应滤波。姓名 任思佳学院 信息学院学号 2011124064时间 2011 11 25 基于lms算法的自适应滤波。作业要求 能掌握lms算法的基本原理和自适应滤波器的基础知识。这次作业需要用到,最小均方算法,和自适应滤波器原理。我好好复习了本科教材中的随机过...
基于MATLAB的数学建模研究
摘要 文章首先介绍了建立数学模型的基本步骤与方法,通过具体实例讨论了matlab 在数学建模中的应用。将 matlab 应用在数学建模中,可以非常方便地求解模型,从而提高了数学建模的效率与质量。关键词 数学建模 matlab 近几十年来,数学科学迅速向自然科学 工程 经济 管理和社会科学等各个领域渗...
工业设计 摄影课作业
产品摄影 大作业。班级 工设10702班 姓名。序号 06 成绩。总结。通过此次产品摄影课程的学习,我对数码相机的基本知识有了一个更深层次的了解,并学会了使用数码相机的技巧。同时我更知道了拍 的方式不应是我们以前那样的拍摄方式,不是看到什么觉得好就可以乱拍一通,而是在拍摄过程中要考虑环境 光线 画面...