www.gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第23章/代码23-2.txt

    
f=imread('peppers.png');                          % 读入图像
f=rgb2gray(f);                                    % 灰度转换
f=im2double(f);                                   % 数据类型转换
% 使用垂直Sobel算子,自动选择阈值
[VSFAT Threshold]=edge(f,'sobel','vertical');     % 边缘探测 
figure, imshow(f),title('Original Image'),        % 显示原始图像
figure,imshow(VSFAT),title('Sobel Filter - Automatic Threshold');    % 显示边缘探测图像
%使用水平和垂直Sobel算子,自动选择阈值
SFST=edge(f,'sobel',Threshold);
figure,imshow(SFST),title('Sobel Filter (Horizontal and Vertical)'); % 显示边缘探测图像
%使用指定45度角Sobel算子滤波器,指定阈值
s45=[-2 -1 0;-1 0 1;0 1 2];
SFST45=imfilter(f,s45,'replicate');
SFST45=SFST45>=Threshold;
figure,imshow(SFST45),title('Sobel Filter (45 Degree)');             % 显示边缘探测图像
%使用指定-45度角Sobel算子滤波器,指定阈值
sm45=[0 1 2;-1 0 1;-2 -1 0];
SFSTM45=imfilter(f,sm45,'replicate');
SFSTM45=SFSTM45>=Threshold;
figure,imshow(SFSTM45),title('Sobel Filter (-45 Degree)');           % 显示边缘探测图像