数字图像处理上机实验三.docx

上传人:b****5 文档编号:7576422 上传时间:2023-05-11 格式:DOCX 页数:11 大小:442.87KB
下载 相关 举报
数字图像处理上机实验三.docx_第1页
第1页 / 共11页
数字图像处理上机实验三.docx_第2页
第2页 / 共11页
数字图像处理上机实验三.docx_第3页
第3页 / 共11页
数字图像处理上机实验三.docx_第4页
第4页 / 共11页
数字图像处理上机实验三.docx_第5页
第5页 / 共11页
数字图像处理上机实验三.docx_第6页
第6页 / 共11页
数字图像处理上机实验三.docx_第7页
第7页 / 共11页
数字图像处理上机实验三.docx_第8页
第8页 / 共11页
数字图像处理上机实验三.docx_第9页
第9页 / 共11页
数字图像处理上机实验三.docx_第10页
第10页 / 共11页
数字图像处理上机实验三.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理上机实验三.docx

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

数字图像处理上机实验三.docx

数字图像处理上机实验三

医学图像处理实验三

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

(注:

文档可能无法思考全面,请浏览后下载,供参考。

可复制、编制,期待你的好评与关注)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2