(四)图像的空域锐化_一阶梯度算子

一,实验原理

图像锐化:增强图像的边缘或轮廓。

图像平滑通过积分过程使得图像边缘模糊,图像锐化则通过微分而使图像边缘突出、清晰。

梯度锐化法:

图像处理中应用微分最常用的方法是计算梯度。对于图像f(xy),在点(xy)处的梯度定义为:

梯度是一个向量,其大小和方向为

(四)图像的空域锐化_一阶梯度算子_第1张图片

离散图像处理时,常用到梯度的大小,因此习惯称梯度大小为“梯度”。并且一阶偏导数采用一阶差分近似表示,即 

gx=f(x+1,y)-f(x,y)  

 gy=f(x,y +1)-f(x,y)

对应的模板为

(四)图像的空域锐化_一阶梯度算子_第2张图片

为简化梯度的计算,经常使用

           grad( f )=Max(|gx|, |gy|)

  或   grad( f =|gx|+|gy|

梯度算子以外,还可采用RobertsPrewittSobel算子计算梯度,来增强边缘。

Roberts算子

    gx =f(x+1,y+1)-f(x,y) 

    gy =f(x+1,y)-f(x,y+1)

对应的模板

(四)图像的空域锐化_一阶梯度算子_第3张图片

Prewitt算子:

    gx =f(x+1,y-1)-f(x-1,y-1)​​​​​​​+f(x+1,y) -f(x-1,y)+f(x+1,y+1)-f(x-1,y+1)

    gy =f(x-1,y+1)-f(x-1,y-1)​​​​​​​+f(x,y+1) -f(x,y-1)+f(x+1,y+1)-f(x+1,y-1)

对应的模板为:

(四)图像的空域锐化_一阶梯度算子_第4张图片

Sobel算子:

    gx =f(x+1,y-1)-f(x-1,y-1)​​​​​​​+2f(x+1,y) -2f(x-1,y)+f(x+1,y+1)-f(x-1,y+1)

    gy =f(x-1,y+1)-f(x-1,y-1)​​​​​​​+2f(x,y+1) -2f(x,y-1)+f(x+1,y+1)-f(x+1,y-1)

(四)图像的空域锐化_一阶梯度算子_第5张图片

二,实验代码和结果

%原图 Roberts边缘检测 Prewitt边缘检测 Sobel边缘检测
clc;
clear;
close all;

I=imread('test4.gif','gif');        %自己设置路径
subplot(2,2,1);
imshow(I);
title('test4原始图像');
G1=edge(I,'Roberts');
subplot(2,2,2);	
imshow(G1,[]);
title('test4Roberts边缘检测');
G2=edge(I,'Prewitt');
subplot(2,2,3);
imshow(G2,[]);
title('test4Prewitt边缘检测');
G3=edge(I,'Sobel');
subplot(2,2,4);
imshow(G3,[]);
title('test4Sobel边缘检测');

(四)图像的空域锐化_一阶梯度算子_第6张图片

三,实验总结

一阶微分算子能有效提取图像边缘,但如果是整幅图片使用一阶微分算子提取,增强的图像仅显示灰度变化比较徒的边缘轮廓,而灰度变化比较平缓或均匀的区域则呈黑色。

附上实验原图

(四)图像的空域锐化_一阶梯度算子_第7张图片

你可能感兴趣的:(Matlab,image,processing)