数字图像处理上机实验三.docx
- 文档编号:5304039
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:11
- 大小:442.87KB
数字图像处理上机实验三.docx
《数字图像处理上机实验三.docx》由会员分享,可在线阅读,更多相关《数字图像处理上机实验三.docx(11页珍藏版)》请在冰豆网上搜索。
数字图像处理上机实验三
医学图像处理实验三
1、计算图像的梯度,梯度值和梯度角。
I=imread('C:
\Users\Administrator\Desktop\cat.jpg');
B=rgb2gray(I);
C=double(B);
e=1e-6;%10^-6
[dx,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:
\Users\admin\Desktop\mao.jpg');
B=rgb2gray(I);
[m,n]=size(B);
nB=B;
robertsnum=0;%经roberts算子计算得到的每一个像素的值
robertsthreshold=0.6;%设定阈值
forj=1:
m-1;%进行边界提取
fork=1:
n-1
robertsnum=abs(B(j,k)-B(j+1,k+1))+abs(B(j+1,k)-B(j,k+1));
if(robertsnum>robertsthreshold)
nB(j,k)=255;
else
nB(j,k)=0;
end
end
end
subplot(1,2,1);imshow(B);title('原图');
subplot(1,2,2);imshow(nB,[]);title('Robert算子处理后的图像');
图3
(2)Sobel算子
clear;
I=imread('C:
\Users\admin\Desktop\mao.jpg');
B=rgb2gray(I);
[m,n]=size(B);
f=double(B);
u=double(B);
usobel=B;
fori=2:
m-1%sobel边缘检测
forj=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*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(gx^2+gy^2);
end
end
subplot(1,2,1);imshow(B);title('原图');
subplot(1,2,2);imshow(im2uint8(usobel));title('Sobel边缘检测后的图像');
图4
(3)Prewitt算子
clear;
I=imread('C:
\Users\admin\Desktop\mao.jpg');
B=rgb2gray(I);
[m,n]=size(B);
nB=B;
prewittnum=0;%经prewitt算子计算得到的每一个像素的值
prewittthreshold=0.6;%设定阈值
forj=2:
m-1;%进行边界提取
fork=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(prewittnum>prewittthreshold)
nB(j,k)=255;
else
nB(j,k)=0;
end
end
end
subplot(1,2,1);imshow(B);title('原图');
subplot(1,2,2);imshow(nB,[]);title('Prewitt算子处理后的图像');
图5
(4)Laplace边缘检测
functionflapEdge=LaplaceEdge(pic,Moldtype,thresh)
[m,n]=size(pic);
flapEdge=zeros(m,n);
%四邻域拉普拉斯边缘检测算子
if4==Moldtype
fori=2:
m-1
forj=2:
n-1
temp=-4*pic(i,j)+pic(i-1,j)+pic(i+1,j)+pic(i,j-1)+pic(i,j+1);
iftemp>thresh
flapEdge(i,j)=255;
else
flapEdge(i,j)=0;
end
end
end
end
%八邻域拉普拉斯边缘检测算子
if8==Moldtype
fori=2:
m-1
forj=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);
iftemp>thresh
flapEdge(i,j)=255;
else
flapEdge(i,j)=0;
end
end
end
end
主函数:
clear;
I=imread('C:
\Users\admin\Desktop\mao.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
closeall
I=imread('C:
\Users\admin\Desktop\mao.jpg');
B=rgb2gray(I);
figure
(1)
imshow(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);
d=zeros(1,8);
%利用Kirsch算子进行边缘提取
fori=2:
m-1
forj=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))^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)-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
%显示边缘提取后的图象
fori=1:
m
forj=1:
n
ifg(i,j)>t
bw5(i,j)=255;
else
bw5(i,j)=0;
end
end
end
figure
(2)
imshow(bw5,[])
title('Kirsch')
图7
(5)LoG和canny算子
clear;
I=imread('C:
\Users\admin\Desktop\mao.jpg');
B=rgb2gray(I);
bw1=edge(B,'log',0.01);
bw3=edge(B,'canny',0.1);
figure;
subplot(1,2,1);imshow(bw1,[]);title('loG边缘检测');
subplot(1,2,2);imshow(bw3,[]);title('canny边缘检测');
图8
3、大津法实现图像分割
clear;
I=imread('C:
\Users\admin\Desktop\cat.jpg');
B=rgb2gray(I);
T=graythresh(B);%求阈值
BW=im2bw(B,T);%二值化
imshow(BW,[])
图9
(注:
文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 上机 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)