MATLAB利用梯度法进行图像边缘锐化(自编函数)

根据下面两种梯度的定义方式,分别输出利用梯度法锐化后的图像。其中图像梯度的定义为:

      

主要代码如下:

clc;
I=imread('lena.bmp');
A=double(I);
subplot(1,2,1);
imshow(I);title('原图');
[gradX, gradY]=gradient(A);
Grad=sqrt(gradX.*gradX+gradY.*gradY);
% 矩阵相乘用点乘
% 图像大小是512*512
for i=1:512-1
    for j=1:512-1
        if(Grad(i,j)>20)
%          规定阈值为20
%          要用Grad(i,j),这里是矩阵,不是一个数值
            A(i,j)=0;
        else
            A(i,j)=255;
        end
    end
end
subplot(1,2,2);
imshow(uint8(A));title('使用函数');

 运行截图:

 

Guess you like

Origin blog.csdn.net/y0205yang/article/details/121315280