总结自网上、matlab帮助文档等,都是图像复原中经常用到的基础函数或操作。可以模拟图像降质过程和用一些经典方法盲解卷积复原的过程。
一、卷积:conv2、convn、convmtx2
卷积的计算步骤:
(1)卷积核绕自己的核心元素顺时针旋转180度
(2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
(3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘
(4)第三步各结果的和做为该输入像素对应的输出像素
相关的计算步骤:
(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方
(2)将输入图像的像素值作为权重,乘以相关核
(3)将上面各步得到的结果相加做为输出
可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。而计算相关过程中不需要旋转相关核。
例如: magic(3) =[8 1 6;3 5 7;4 9 2],旋转180度后就成了[2 9 4;7 5 3;6 1 8]。
A = rand(3);
B = rand(4);
C = conv2(A,B) % C is 6-by-6
C =
0.1838 0.2374 0.9727 1.2644 0.7890 0.3750
0.6929 1.2019 1.5499 2.1733 1.3325 0.3096
0.5627 1.5150 2.3576 3.1553 2.5373 1.0602
0.9986 2.3811 3.4302 3.5128 2.4489 0.8462
0.3089 1.1419 1.8229 2.1561 1.6364 0.6841
0.3287 0.9347 1.6464 1.7928 1.2422 0.5423
Cs = conv2(A,B,'same') % Cs is the same size as A: 3-by-3
Cs =
2.3576 3.1553 2.5373
3.4302 3.5128 2.4489
1.8229 2.1561 1.6364
二、滤波:filter2、fspecial、imfilter、spfilt、admedin
1、imfilter 可进行多维图像(RGB等)进行空间滤波,且可选参数较多
2、filter2 只能对二维图像(灰度图)进行空间滤波