数字图像处理上机实验三

上传人:枫** 文档编号:488156614 上传时间:2023-07-18 格式:DOC 页数:11 大小:566KB
返回 下载 相关 举报
数字图像处理上机实验三_第1页
第1页 / 共11页
数字图像处理上机实验三_第2页
第2页 / 共11页
数字图像处理上机实验三_第3页
第3页 / 共11页
数字图像处理上机实验三_第4页
第4页 / 共11页
数字图像处理上机实验三_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数字图像处理上机实验三》由会员分享,可在线阅读,更多相关《数字图像处理上机实验三(11页珍藏版)》请在金锄头文库上搜索。

1、医学图像处理 实验三1、 计算图像的梯度,梯度值和梯度角。I=imread(C:UsersAdministratorDesktopcat.jpg);B=rgb2gray(I);C=double(B);e=1e-6;%10-6dx,dy=gradient(C);%计算梯度G=sqrt(dx.*dx+dy.*dy);%梯度幅值figure,imshow(uint8(G),title(梯度图像);pha=atan(dy./(dx+e)figure,imshow(pha,)图 1图 2 梯度角图2、 计算图像边缘检测,用滤波器方式实现各种算子。(1)Roberts算子clear;I=imread(C:

2、UsersadminDesktopmao.jpg);B=rgb2gray(I);m,n=size(B);nB=B;robertsnum=0;%经roberts算子计算得到的每一个像素的值robertsthreshold=0.6;%设定阈值for j=1:m-1;%进行边界提取 for k=1:n-1 robertsnum=abs(B(j,k)-B(j+1,k+1)+abs(B(j+1,k)-B(j,k+1); if(robertsnumrobertsthreshold) nB(j,k)=255; else nB(j,k)=0; end endendsubplot(1,2,1);imshow(B

3、);title(原图);subplot(1,2,2);imshow(nB,);title(Robert算子处理后的图像);图 3(2)Sobel算子clear;I=imread(C:UsersadminDesktopmao.jpg);B=rgb2gray(I);m,n=size(B);f=double(B);u=double(B);usobel=B;for i=2:m-1%sobel边缘检测 for j=2:n-1; gx=(u(i+1,j-1)+2*u(i+1,j)+f(i+1,j+1)-(u(i-1,j-1)+2*u(i-1,j)+f(i-1,j+1); gy=(u(i-1,j+1)+2*

4、u(i,j+1)+f(i+1,j+1)-(u(i-1,j-1)+2*u(i,j-1)+f(i+1,j-1); usobel(i,j)=sqrt(gx2+gy2); endendsubplot(1,2,1);imshow(B);title(原图);subplot(1,2,2);imshow(im2uint8(usobel);title(Sobel边缘检测后的图像);图 4(3)Prewitt算子clear;I=imread(C:UsersadminDesktopmao.jpg);B=rgb2gray(I);m,n=size(B);nB=B;prewittnum=0;%经prewitt算子计算得到

5、的每一个像素的值prewittthreshold=0.6;%设定阈值for j=2:m-1;%进行边界提取 for k=2:n-1 prewittnum=abs(B(j-1,k+1)-B(j+1,k+1)+B(j-1,k)-B(j+1,k)+B(j-1,k-1)-B(j+1,k-1)+abs(B(j-1,k+1)+B(j,k+1)+B(j+1,k+1)-B(j-1,k-1)-B(j,k-1)-B(j+1,k-1); if(prewittnumprewittthreshold) nB(j,k)=255; else nB(j,k)=0; end endendsubplot(1,2,1);imsho

6、w(B);title(原图);subplot(1,2,2);imshow(nB,);title(Prewitt算子处理后的图像);图 5(4)Laplace边缘检测function flapEdge=LaplaceEdge(pic,Moldtype,thresh)m,n=size(pic);flapEdge=zeros(m,n);%四邻域拉普拉斯边缘检测算子if 4=Moldtype for i=2:m-1 for j=2:n-1 temp=-4*pic(i,j)+pic(i-1,j)+pic(i+1,j)+pic(i,j-1)+pic(i,j+1); if tempthresh flapEd

7、ge(i,j)=255; else flapEdge(i,j)=0; end end endend%八邻域拉普拉斯边缘检测算子if 8=Moldtype for i=2:m-1 for j=2:n-1 temp=-8*pic(i,j)+pic(i-1,j)+pic(i+1,j)+pic(i,j-1)+pic(i,j+1)+pic(i-1,j-1)+pic(i+1,j+1)+pic(i+1,j-1)+pic(i-1,j+1); if tempthresh flapEdge(i,j)=255; else flapEdge(i,j)=0; end end endend主函数:clear;I=imre

8、ad(C:UsersadminDesktopmao.jpg);B=rgb2gray(I);C=double(B);t=60;Lapmodtype=8;%设置模板方式flapEdge=LaplaceEdge(C,Lapmodtype,t);fgrayLapedge=uint8(flapEdge);figure()imshow(fgrayLapedge),title(laplace边缘检测图像);图 6(4)Kirsch算子clear clc close all I=imread(C:UsersadminDesktopmao.jpg);B=rgb2gray(I);figure(1) imshow(

9、B,) title(原始图象) %对图象进行均值滤波 bw2=filter2(fspecial(average,3),B); %对图象进行高斯滤波 bw3=filter2(fspecial(gaussian),bw2); %利用小波变换对图象进行降噪处理 thr,sorh,keepapp=ddencmp(den,wv,bw3); %获得除噪的缺省参数 bw4=wdencmp(gbl,bw3,sym4,2,thr,sorh,keepapp);%图象进行降噪处理 %- %提取图象边缘 t=3000; %设定阈值 bw5=double(bw4); m,n=size(bw5); g=zeros(m,n

10、); d=zeros(1,8); %利用Kirsch算子进行边缘提取 for i=2:m-1 for j=2:n-1 d(1) =(5*bw5(i-1,j-1)+5*bw5(i-1,j)+5*bw5(i-1,j+1)-3*bw5(i,j-1)-3*bw5(i,j+1)-3*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1)2; d(2) =(-3)*bw5(i-1,j-1)+5*bw5(i-1,j)+5*bw5(i-1,j+1)-3*bw5(i,j-1)+5*bw5(i,j+1)-3*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1)

11、2; d(3) =(-3)*bw5(i-1,j-1)-3*bw5(i-1,j)+5*bw5(i-1,j+1)-3*bw5(i,j-1)+5*bw5(i,j+1)-3*bw5(i+1,j-1)-3*bw5(i+1,j)+5*bw5(i+1,j+1)2; d(4) =(-3)*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)-3*bw5(i,j-1)+5*bw5(i,j+1)-3*bw5(i+1,j-1)+5*bw5(i+1,j)+5*bw5(i+1,j+1)2; d(5) =(-3)*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)

12、-3*bw5(i,j-1)-3*bw5(i,j+1)+5*bw5(i+1,j-1)+5*bw5(i+1,j)+5*bw5(i+1,j+1)2; d(6) =(-3)*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)+5*bw5(i,j-1)-3*bw5(i,j+1)+5*bw5(i+1,j-1)+5*bw5(i+1,j)-3*bw5(i+1,j+1)2; d(7) =(5*bw5(i-1,j-1)-3*bw5(i-1,j)-3*bw5(i-1,j+1)+5*bw5(i,j-1)-3*bw5(i,j+1)+5*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1)2; d(8) =(5*bw5(i-1,j-1)+5*bw5(i-1,j)-3*bw5(i-1,j+1)+5*bw5(i,j-1)-3*bw5(i,j+1)-3*bw5(i+1,j-1)-3*bw5(i+1,j)-3*bw5(i+1,j+1)2; g(i,j) = max(d); end end %显示边缘提取后的图象 for i=1:m for j=1:n if g(i,j)t bw5(i,j)=255; else bw5(i,j)=0; end end end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号