[Digital image processing matlab] sobel, prewitt operator image sharpening

[Digital image processing matlab] sobel, prewitt operator image sharpening

Read in an image and use sobel and prewitt operators to achieve image sharpening

function F=sharper(image)
%调用代码---------------------------
% imageR=imread('eye.jpg'); 
% image=rgb2gray(imageR); sharper(image);
#--------------------------------

[row,column]=size(image);
%sobel算子锐化,4邻域进行加权差分,对边缘的检测更加精确
t1=[-1,-2,-1;0,0,0;1,2,1];
t2=[-1,0,1;-2,0,2;-1,0,1];
%Prewitt算子锐化,较多的考虑了邻域问题
t3=[-1,-1,-1;0,0,0;1,1,1];          
t4=[-1,0,1;-1,0,1;-1,0,1];

Image1=zeros(row-1,column-1);
Image2=zeros(row-1,column-1);
for i=1:row-2
    for j=1:column-2
        I=double([image(i,j),image(i,j+1),image(i,j+2);
            image(i+1,j),image(i+1,j+1),image(i+1,j+2);
            image(i+2,j),image(i+2,j+1),image(i+2,j+2);]);
        Image1(i,j)=sum(sum(t1.*I))+sum(sum(t2.*I));
        Image2(i,j)=sum(sum(t3.*I))+sum(sum(t4.*I));
    end
end
subplot(1,3,1);imshow(image);
title('原图')
subplot(1,3,2);imshow(uint8(Image1));  
title('Sobel梯度空间锐化')
subplot(1,3,3);imshow(uint8(Image2));    
title('Prewitt算法空间锐化')

end

Guess you like

Origin blog.csdn.net/gsgs1234/article/details/123427346