Sobel算子边缘检测Matlab实现(转)

来源:互联网 发布:python开发网页怎么样? 编辑:程序博客网 时间:2024/05/18 21:42
f=imread('female.jpg');
f=rgb2gray(f);         %转化成灰度图
f=im2double(f);           %函数im2double 将其值归一化到0~1之间
%使用垂直Sobcl箅子.自动选择阈值
[VSFAT Threshold]=edge(f, 'sobel','vertical');                    %边缘探测
figure,imshow(f),title(' 原始图像,');                      %显示原始图像
figure,imshow(VSFAT),title( '垂直图像边缘检测');
%显示边缘探测图像
%使用水平和垂直Sobel算子,自动选择阈值
SFST=edge(f,'sobel',Threshold);
figure,imshow(SFST),title('水平和垂直图像边缘检测');
%显示边缘探测图像
%使用指定45度角Sobel算子滤波器,指定阂值
s45=[-2 -1 0;-1 0 1;0 1 2];
SFST45=imfilter(f,s45,'replicate');%功能:对任意类型数组或多维图像进行滤波。
SFST45=SFST45>=Threshold;
figure,imshow(SFST45),title('45度角图像边缘检测') ;
%显示边缘探测图像
0 0