MATLAB 水平锐化、垂直锐化和Roberts锐化
比较一下它们的效果
clear
clc
I=imread('1.jpg');
I=rgb2gray(I);
[L,R]=size(I);
for i=2:L-1
for j=2:R-1
g1(i,j)=(I(i-1,j-1)-I(i+1,j-1))+2*(I(i-1,j)-I(i+1,j))+(I(i-1,j+1)-I(i+1,j+1));
end
end
figure(2)
imshow(g1);
title('我的水平方向')
for i=2:L-1
for j=2:R-1
g2(i,j)=(I(i-1,j-1)-I(i-1,j+1))+2*(I(i,j-1)-I(i,j+1))+(I(i+1,j-1)-I(i+1,j+1));
end
end
figure(3)
imshow(g2);
title('我的垂直方向')
for i=1:L
for j=1:R
if i<=L-1 & i>=2 & j<=R-1 & j>=2
g3(i,j)=abs(I(i,j)-I(i+1,j+1))+abs(I(i+1,j)-I(i,j+1));
end
end
end
figure(4)
imshow(g3);
title('我的 Roberts')
水平方向的微分算子
有效果可以看到水平方向的线条比较明显
垂直方向的微分算子
有效果可以看到垂直方向的线条比较明显
Roberts交叉微分算子
有效果可以看到水平方向和垂直方向的线条都比较明显