clc;clear;
ori_img=imread('mm.jpg');
ori_img=mat2gray(ori_img);
r=ori_img(:,:,1);
g=ori_img(:,:,2);
b=ori_img(:,:,3);
w1=double([0,-1,0;-1,5,-1;0,-1,0]); %sharpen 锐化 算子
w2=double([0,0,0;-1,1,0;0,0,0]); %edge_enhance 边缘增强
w3=double([0,1,0;1,-4,1;0,1,0]); %edge_detect 边缘检测 图像锐化,拉普拉斯算子
w5=double([0,0,0;-1,2,-1;0,0,0]); % edge_detect V 垂直边缘检测
w4=double([0,-1,0;0,2,0;0,-1,0]); % edge_detect H 水平边缘检测
gr3=conv2(r,w3,'same'); % 拉普拉斯
gg3=conv2(g,w3,'same');
gb3=conv2(b,w3,'same');
gr4=conv2(r,w4,'same'); % 水平
gg4=conv2(g,w4,'same');
gb4=conv2(b,w4,'same');
gr5=conv2(r,w5,'same'); % 垂直
gg5=conv2(g,w5,'same');
gb5=conv2(b,w5,'same');
grg3=mat2gray(gr3);% 拉普拉斯
ggg3=mat2gray(gg3);
gbg3=mat2gray(gb3);
grg4=mat2gray(gr4); % 水平
ggg4=mat2gray(gg4);
gbg4=mat2gray(gb4);
grg5=mat2gray(gr5);% 垂直
ggg5=mat2gray(gg5);
gbg5=mat2gray(gb5);
filter_img3=cat(3,grg3,ggg3,gbg3);% 拉普拉斯
filter_img4=cat(3,grg4,ggg4,gbg4);% 水平
filter_img5=cat(3,grg5,ggg5,gbg5);% 垂直
subplot(1,2,1),imshow(ori_img,[]);title('original image');
subplot(1,2,2),imshow(filter_img3,[]);title('filtered img laplace');
figure
subplot(1,2,1),imshow(filter_img4,[]);title('filtered img H');
subplot(1,2,2),imshow(filter_img5,[]);title('filtered img V');