有趣的卷积

做Harris Corner的时候,发现用到了matlab的conv函数对图像做卷积。后来就去网上查资料,发现不同的卷积核能得到不同的图像,挺神奇的。

原始图像

平滑均值滤波

高斯平滑

图像锐化

边缘锐化

水平梯度卷积核

垂直梯度卷积核

Laplacian锐化边缘提取

matlab代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
im = imread('C:\Users\yiming\Desktop\study\Computer Version\conv\mountain.jpg');
im = double(im);
r = im(:,:,1); %通道R
g = im(:,:,2); %通道G
b = im(:,:,3); %通道B
%A = ones(3,3)*1/9;%平滑均值滤波
%A = [1/16,2/16,1/16;2/16,2/16,2/16;1/16,2/16,1/16];%高斯平滑
%A = [-1,-1,-1;-1,9,-1;-1,-1,-1];%图像锐化
%A = [0,-1,0;-1,5,-1;0,-1,0];%边缘锐化
%A = [-1,0,1;-1,0,1;-1,0,1];%水平梯度卷积核
%A = [-1,-1,-1;0,0,0;1,1,1];%垂直梯度卷积核
A = [1,1,1;1,-10,1;1,1,1];%Laplacian锐化(边缘提取)
imager = conv2(r,A,'same');
imageg = conv2(g,A,'same');
imageb = conv2(b,A,'same');
image_RGB(:,:,1) = imager;
image_RGB(:,:,2) = imageg;
image_RGB(:,:,3) = imageb;
image_RGB=image_RGB/256;
imwrite(image_RGB,'RGB8.jpg','jpg')
imshow(image_RGB);