边缘提取和边缘检测matlab程序代码大全Word文档格式.docx
- 文档编号:18982072
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:10
- 大小:15.80KB
边缘提取和边缘检测matlab程序代码大全Word文档格式.docx
《边缘提取和边缘检测matlab程序代码大全Word文档格式.docx》由会员分享,可在线阅读,更多相关《边缘提取和边缘检测matlab程序代码大全Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
%建立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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 边缘 提取 检测 matlab 程序代码 大全