边缘提取和边缘检测matlab程序代码大全Word文档格式.docx

上传人:b****6 文档编号:18982072 上传时间:2023-01-02 格式:DOCX 页数:10 大小:15.80KB
下载 相关 举报
边缘提取和边缘检测matlab程序代码大全Word文档格式.docx_第1页
第1页 / 共10页
边缘提取和边缘检测matlab程序代码大全Word文档格式.docx_第2页
第2页 / 共10页
边缘提取和边缘检测matlab程序代码大全Word文档格式.docx_第3页
第3页 / 共10页
边缘提取和边缘检测matlab程序代码大全Word文档格式.docx_第4页
第4页 / 共10页
边缘提取和边缘检测matlab程序代码大全Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

边缘提取和边缘检测matlab程序代码大全Word文档格式.docx

《边缘提取和边缘检测matlab程序代码大全Word文档格式.docx》由会员分享,可在线阅读,更多相关《边缘提取和边缘检测matlab程序代码大全Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

边缘提取和边缘检测matlab程序代码大全Word文档格式.docx

%建立Y方向的模板

I=im2double(A);

%将图像数据转化为双精度

dx=imfilter(I,x_mask);

%计算X方向的梯度分量

dy=imfilter(I,y_mask);

%计算Y方向的梯度分量

grad=sqrt(dx.*dx+dy.*dy);

%计算梯度

grad=mat2gray(grad);

%将梯度矩阵转换为灰度图像

level=graythresh(grad);

%计算灰度阈值

BW=im2bw(grad,level);

%用阈值分割梯度图像

subplot(2,4,2);

imshow(BW);

%显示分割后的图像即边缘图像

Roberts'

y_mask=[-1-2-1;

000;

121];

x_mask=y_mask'

;

subplot(2,4,3);

Sobel'

y_mask=[-1-1-1;

111];

subplot(2,4,4);

Prewitt'

mask=[0,-1,0;

-1,4,-1;

0,-1,0];

%建立模板

dx=imfilter(I,mask);

%计算梯度矩阵

grad=mat2gray(dx);

%将梯度矩阵转化为灰度图像

BW=im2bw(grad,0.58);

subplot(2,4,5);

%显示分割后的图像,即梯度图像

Laplacian'

mask=[0,0,-1,0,0;

0,-1,-2,-1,0;

-1,-2,16,-2,-1;

0,0,-1,0,0];

subplot(2,4,6);

log'

BW1=edge(I,'

canny'

%调用canny函数

subplot(2,4,7);

imshow(BW1);

Canny'

mask1=[-1-2-1;

%建立方向模板

mask2=[-2-10;

-101;

012];

mask3=[-101;

-202;

-101];

mask4=[012;

-2-10];

mask5=[121;

-1-2-1];

mask6=[210;

10-1;

0-1-2];

mask7=[10-1;

20-2;

10-1];

mask8=[0-1-2;

210];

d1=imfilter(I,mask1);

%计算8个领域的灰度变化

d2=imfilter(I,mask2);

d3=imfilter(I,mask3);

d4=imfilter(I,mask4);

d5=imfilter(I,mask5);

d6=imfilter(I,mask6);

d7=imfilter(I,mask7);

d8=imfilter(I,mask8);

dd=max(abs(d1),abs(d2));

%取差值变化最大的元素组成灰度变化矩阵

dd=max(dd,abs(d3));

dd=max(dd,abs(d4));

dd=max(dd,abs(d5));

dd=max(dd,abs(d6));

dd=max(dd,abs(d7));

dd=max(dd,abs(d8));

grad=mat2gray(dd);

%将灰度变化矩阵转化为灰度图像

BB=grad;

FW=median(BB(:

))/0.6745;

B=BB.*BB;

B=sum(B(:

));

FX=sqrt(B/256^2);

FS=sqrt(max(FX^2-FW^2,0));

T=sqrt

(2)*FW^2/FS;

%计算最佳阈值

grad=mat2gray(BB);

BW2=im2bw(grad,T);

%用最佳阈值分割梯度图像

subplot(2,4,8);

imshow(BW2);

%显示分割后的图像,即边缘图像

sobel改进算子'

Part2加入高斯噪声后的cameraman仿真程序:

 

V=0.009;

X=imnoise(A,'

gaussian'

0,V);

imshow(X);

%添加均值为0、方差0.09的高斯噪声

%创建X方向的模板

%创建Y方向的模板

I=im2double(X);

%图像数据双精度转化

%X方向的梯度分量的计算

%Y方向的梯度分量的计算

%梯度计算

%梯度矩阵转换成灰度图像

%使用阈值分割梯度图像

%梯度矩阵转为灰度图像

加入椒盐噪声的边缘检测程序:

functionjingdian

I=imread('

lenna.bmp'

I1=imnoise(I,'

salt&

pepper'

%添加椒盐噪声,默认值为0.02

figure,imshow(I1);

%添加均值为0、方差0.002的高斯噪声

添加椒盐噪声后原图'

B1=edge(I1,'

roberts'

B2=edge(I1,'

sobel'

B3=edge(I1,'

prewitt'

B4=edge(I1,'

B5=edge(I1,'

subplot(2,3,1);

imshow(B1);

roberts算子检测'

subplot(2,3,2);

imshow(B2);

sobel算子检测'

subplot(2,3,3);

imshow(B3);

prewitt算子检测'

subplot(2,3,4);

imshow(B4);

canny算子检测'

subplot(2,3,5)

imshow(B5);

log算子检测'

%调用roberts算子检测图像

%调用soble算子进行边缘检测

%调用prewitt算子进行边缘检测

%调用canny算子对图像进行边缘检测

%调用log算子对图像进行边缘检测

%设置图像布局

%现实图像并命名为roberts算子检测

I=im2double(I1);

%将数据图像转化为双精度

subplot(2,3,6);

加入椒盐噪声的sobel改进算子'

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

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1