I=imread('skull.tif'); %读取图像
I=rgb2gray(I);
subplot(3,3,1),imshow(I),title('原图像'),imshow(I);title('原图像') %在3*3子图像的位置1显示原图像
BW1=edge(I,'sobel',0.1); %用 sobel 算子进行边缘检测,判断阈值为 0.1
subplot(3,3,2),imshow(BW1);title('sobel算子处理后图像') %在3*3子图像的位置2显示sobel算子处理后图像
BW2=edge(I,'roberts',0.1); %用 roberts 算子进行边缘检测,判断阈值为 0.1
subplot(3,3,3),imshow(BW2);title('roberts算子处理后图像')%在3*3子图像的位置3显示roberts算子处理后图像
BW3=edge(I,'prewitt',0.1); %用 prewitt 算子进行边缘检测,判断阈值为 0.1
subplot(3,3,4),imshow(BW3);title('prewitt算子处理后图像')%在3*3子图像的位置4显示prewitt算子处理后图像
BW4=edge(I,'log',0.01); %用 log 算子进行边缘检测,判断阈值为 0.01
subplot(3,3,5),imshow(BW4);title('log算子处理后图像')%在3*3子图像的位置5显示log算子处理后图像
BW5=edge(I,'canny',0.1);%用 canny 算子进行边缘检测,判断阈值为 0.1
subplot(3,3,6),imshow(BW5);title('canny算子处理后图像')%在3*3子图像的位置6显示canny算子处理后图像
H=fspecial('laplacian'); %生成Laplacian算子滤波器(突出图像中的小细节)(它具有各向同性)(Laplacian 算子对噪声比较敏感,所以图像一般先经过平滑处理,因为平滑处理也是用模板进行的,所以,通常的分割算法都是把Laplacian 算子和平滑算子结合起来生成一个新的模板。)
laplacianH=filter2(H,I); %图像I经Laplacian算子锐化滤波处理
subplot(3,3,7);imshow(laplacianH);title('Laplacian算子锐化图像'); %在3*3子图像的位置7显示Laplacian算子锐化图像