机器视觉与图像处理_第1页
机器视觉与图像处理_第2页
机器视觉与图像处理_第3页
机器视觉与图像处理_第4页
机器视觉与图像处理_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机器视觉与图像处理课程大作业专业:自动化班级: 1402学号:201423020230姓名: 杨坤翔大作业说明1. 要求每位同学独立完成课程大作业;2. 鼓励组成课程小组,集体讨论研究,课程总结内说明小组成员;3. 允许借鉴网络、书籍上相关代码资源,但一定要切合题目内容;4. 根据题目要求,原理解释部分若需要公式,使用公式编辑器编辑;代码部分保证完整、可运行;结果部分黏贴原图;5. 作业鼓励将个人调试经验、学习心得等个性化内容总结。题目1:高斯滤波器与拉普拉斯滤波器1.1 给出高斯滤波器与拉普拉斯滤波器数学表达式; (1)给出高斯滤波器数学表达式: (2)给出拉普拉斯滤波器数学表达式:1.2

2、使用Matlab绘制出高斯滤波器与拉普拉斯滤波器图形表达;图形表达:alf=3; n=7;%定义模板大小 n1=floor(n+1)/2);%确定中心 for i=1:n a(i)= exp(-(i-n1).2)/(2*alf2); 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 分别使用高斯滤波器和拉普拉斯滤波器对下

3、列图片进行卷积运算操作,是否有快速方法进行拉普拉斯滤波器卷积运算?(1)高斯滤波:I = imread(' C:Usersdell-5000Pictureslovewallpaper25260-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

4、=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:

5、Usersdell-5000Pictureslovewallpaper25260-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)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确

6、确定边缘的位置。 (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。 (3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。 (4)Canny边缘检测算法:  step1:用高斯滤波器平滑图象;  step2:用一阶偏导的有限差分来计算梯度的幅值和方向;  step3:对梯度幅值进行非极大值抑制;  step4:用双阈值算法检测和连接边缘。2.2 使用Canny算法对下图进行边缘检测,并对比其他边缘检测算法,如Sobel, Roberts等;1.canny 算子:I=imread

7、('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

8、=(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('ma

9、tlab sobel检测') 结论:Roberts算子:边缘定位准,但是对噪声敏感。适用于边缘明显且噪声较少的图像分割。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。Sobel算子:其主要用于边缘检测,在技术上它是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值,缺点是Sobel算子并没有将图像的主题与背景严格地区分开来,换言之就是Sobel算子并没有基于图像灰度进行处理,由于S

10、obel算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意Canny算子:该算子功能比前面几种都要好,但是它实现起来较为麻烦,Canny算子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将经过一个非极大值抑制的过程,最后Canny算子还采用两个阈值来连接边缘。题目3 角点与斑点检测3.1 使用Harris算法检测下图中角点(harris算法实现)Harris算法:filename,pathname,=uiget

11、file('dazuoye03.jpg'); if ischar(filename) return end str=pathname filename; pic=imread(str); if length(size(pic)=3 img=rgb2gray(pic); end m,n=size(img); tmp=zeros(m+2,n+2); tmp(2:m+1,2:n+1)=img; Ix=zeros(m+2,n+2); Iy=zeros(m+2,n+2); Ix(:,2:n+1)=tmp(:,3:n+2)-tmp(:,1:n); Iy(2:m+1,:)=tmp(3:m+2

12、,:)-tmp(1:m,:); Ix2=Ix(2:m+1,2:n+1).2; Iy2=Iy(2:m+1,2:n+1).2; Ixy=Ix(2:m+1,2:n+1).*Iy(2:m+1,2:n+1); h=fspecial('gaussian',7 7,2); Ix2=filter2(h,Ix2); Iy2=filter2(h,Iy2); Ixy=filter2(h,Ixy); R=zeros(m,n); for i=1:m for j=1:n M=Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j); R(i,j)=det(M)-0.06*(trace(M)2

13、; end end Rmax=max(max(R); loc=; tmp(2:m+1,2:n+1)=R; for i=2:m+1 for j=2:n+1 if tmp(i,j)>0.01*Rmax sq=tmp(i-1:i+1,j-1:j+1); sq=reshape(sq,1,9); sq=sq(1:4),sq(6:9); if tmp(i,j)>sq loc=loc;j-1,i-1; end end end end X=loc(:,1); Y=loc(:,2); subplot(1,2,1);imshow(pic); subplot(1,2,2);imshow(pic); ho

14、ld on plot(X,Y,'*'); hold off 3.2使用Log算子检测下图中斑点 (Matlab: log_Blob)(1) 构造LoG_Blob函数:(2) 构造draw函数:(3) 算法实现:img=imread('dazuoye04.jpg');imshow(img);pt=LoG_Blob(rgb2gray(img);draw(img,pt,'LOG') 个人体会:在做题时,通过查找网上的资料才做出来,我觉得难点在于函数的书写上,函数写出来了,题目就做出来了。题目4 特征点匹配4.1 完成下列两图中的特征点检测与匹配(1)算法实现:>> i1=imread('dazuoye05.jpg'); i2=imread('dazuoye06.jpg'); i11=rgb2gray(i1); i22=rgb2gray(i2); imwrite(i11,'v1.jpg'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论