- 在图像处理领域,Kernel = convolution matrix = mask,它们一般都为一个较小的矩阵;
- 用于:Sharpen,Blur, Edge enhance,Edge detect,Emboss(使凸出;在……上作浮雕图案;装饰)
1. 卷积操作与卷积矩阵的等价性
-
(1)创建一维信号
N = 100;
s = zeros(N, 1);
k = [20, 45, 70];
a = [2, -1, 1];
s(k) = a; -
(2)创建卷积核
L = 4;
h = ones(L, 1)/L; -
(3)使用 matlab 创建 convolution matrix
首先考虑,卷积矩阵的 size,卷积操作
conv(h, s)
返回的响应其长度为 L+N-1, 因此:M = N+L-1;
H = sparse(M, N);
e = ones(N, 1)
for i = 0:L-1,
H = H + spdiags(e*h(i+1), -i, M, N);
end -
(4)验证二者操作的等价性:
err = H*s - conv(h, s);
max_err = max(abs(err));
2. spy:可视化稀疏矩阵的形式
而不是简单地将稀疏矩阵以一个矩阵的形式显示,显然是因为其规模十分之大,且较为稀疏,不易直观观察。