在计算图像的梯度时有好多种算子可以选择,下面介绍Roberts、Sobel、Prewitt梯度算子。
cameraman.tif 原图如下:
水平x方向上
%Matlab代码
img=imread('cameraman.tif');
h_x=[1,0;0,-1];
out_img=conv2(img,h_x);
figure;imshow(out_img);
垂直y方向上
%Matlab代码
img=imread('cameraman.tif');
h_y=[0,1;-1,0];
out_img=conv2(img,h_y);
figure;imshow(out_img);
水平x方向上
%Matlab代码
img=imread('cameraman.tif');
h_x=[-1,-2,-1;0,0,0;1,2,1];
out_img=conv2(img,h_x);
figure;imshow(out_img);
垂直y方向上
%Matlab代码
img=imread('cameraman.tif');
h_y=[-1,0,1;-2,0,2;-1,0,1];
out_img=conv2(img,h_y);
figure;imshow(out_img);
%Matlab代码
img=imread('cameraman.tif');
h_x=[-1,-1,-1;0,0,0;1,1,1];
out_img=conv2(img,h_x);
figure;imshow(out_img);
%Matlab代码
img=imread('cameraman.tif');
h_y=[-1,0,1;-2,0,2;-1,0,1];
out_img=conv2(img,h_y);
figure;imshow(out_img);