机器视觉与图像处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《机器视觉与图像处理》课程大作业
班级:
学号:201423020230
姓名:杨坤翔
2017.06.05
大作业说明
1. 要求每位同学独立完成课程大作业;
2. 鼓励组成课程小组,集体讨论研究,课程总结内说明小组成员;
3. 允许借鉴网络、书籍上相关代码资源,但一定要切合题目内容;
4. 根据题目要求,原理解释部分若需要公式,使用公式编辑器编辑; 代码部分保证完整、可运行;结果部分黏贴原图;
5. 作业鼓励将个人调试经验、学习心得等个性化内容总结。
题目 1:高斯滤波器与拉普拉斯滤波器
1.1给出高斯滤波器与拉普拉斯滤波器数学表达式;
(1给出高斯滤波器数学表达式 :
(2给出拉普拉斯滤波器数学表达式 :
1.2使用 Matlab 绘制出高斯滤波器与拉普拉斯滤波器图形表达; 图形表达: alf=3;
n=7;%定义模板大小
n1=floor((n+1/2;%确定中心
for i=1:n
a(i= exp(-((i-n1.^2/(2*alf^2;
for j=1:n
b(i,j =exp(-((i-n1^2+(j-n1^2/(4*alf/(4*pi*alf;
end
end
subplot(121,plot(a,title('一维高斯函数 ' subplot(122,surf(b,title('二维高斯函数 '
1.3分别使用高斯滤波器和拉普拉斯滤波器对下列图片进行卷积运算操作, 是否有快速方法进行拉普拉斯滤波器卷积运算?
(1高斯滤波:
I = imread('C:\Users\dell-5000\Pictures\lovewallpaper\25260-106.jpg';
H=rgb2gray(I;
Img = double(H;
alf=3;
n=10;
n1=floor((n+1/2;
for i=1:n
for j=1:n
b(i,j =exp(-((i-n1^2+(j-n1^2/(4*alf/(4*pi*alf;
end
end
Img_n = uint8(conv2(Img,b,'same';
K=uint8(imfilter(Img,b;
Img_n2=uint8(imfilter(Img,b,'conv';
J=(Img_n2-Img_n;
flag=mean(J(:
subplot(131,imshow(I;title('原图 '
subplot(132,imshow(Img_n;title('卷积运算图 ' subplot(133,imshow(K;title('相关运算图 '
(2拉普拉斯滤波:
h1=fspecial('laplacian';
A=imread(' C:\Users\dell-5000\Pictures\lovewallpaper \25260-106.jpg ';
K=rgb2gray(A;
B=imfilter(K,h1;
subplot(131,imshow(A;title('原图 '
subplot(132,imshow(K;title('灰度图 '
subplot(133,imshow(B;title('相关运算图 '
题目 2:使用 Canny 算子边缘检测
2.1 列写出 Canny 算子检测边缘算法原理;
(1图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。
(2根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是 Canny 边缘检测算子。
(3类似与 Marr (LoG 边缘检测方法,也属于先平滑后求导数的方法。
(4 Canny 边缘检测算法:
step1:用高斯滤波器平滑图象;
step2:用一阶偏导的有限差分来计算梯度的幅值和方向;
step3:对梯度幅值进行非极大值抑制;
step4:用双阈值算法检测和连接边缘。
2.2 使用 Canny 算法对下图进行边缘检测,并对比其他边缘检测算法,如 Sobel, Roberts等;
1.canny 算子:
I=imread('dazuoye02.jpg';
I=rgb2gray(I;
imshow(I;title('原图 ' BW1=edge(I,'canny'; figure,imshow(BW1; title('matlab canny检测 '
2.Roberts 算子:
I=imread('dazuoye02.jpg'; K=rgb2gray(I;
BW1=[1,0;0,-1];
BW2=[0,1;-1,0];
J1=filter2(BW1,K;
J2=filter2(BW2,K;
K1=double(J1;
K2=double(J2;
M=(abs(K1 +abs(K2; figure,imshow(uint8(M title('matlab Robert检测 '
3.Sobel 算子:
I=imread('dazuoye02.jpg'; K=rgb2gray(I;
BW1=[-1,-2,-1;0,0,0;1,2,1]; BW2=[-1,0,1;-2,0,2;-1,0,1]; J1=filter2(BW1,K; J2=filter2(BW2,K;
K1=double(J1;
K2=double(J2;
M=(abs(K1 +abs(K2; figure,imshow(uint8(M title('matlab sobel检测 '