[DIP] 数字图像处理 (MATLAB) CH05
---慢慢地go through冈萨雷斯的DIP和配套的matlab,记下一些零碎的知识点给自己以后复习。
DIP CH05 图像复原与重建
首先是一些空间域和频域添加噪声的方法,书中编写了imnoise2与imnoise3,分别在空间域和频域添加噪声(频域噪声对应空间周期噪声)。其中imnoise2主要是利用函数rand()与randn(),分别生成均匀分布(U(0,1))与高斯分布(N(0,1))的随机数,配合find()函数进行噪声生成;imnoise3则利用第四章的知识,用fftshift/ifftshift,fft2/ifft2等函数生成空间域周期噪声,注意在频域上脉冲要成对出现(共轭)。
5.3.1节主要探讨仅有噪声的复原与空间滤波。书中编写了spfilt,可以选择算术均值滤波,几何均值滤波,谐波均值滤波,逆谐波均值滤波,中值滤波,最大值滤波,最小值滤波,中点滤波和修正的阿尔法均值滤波。
几何均值滤波与算术均值滤波相比同样可以起平滑作用,但失真较少;
逆谐波均值滤波在参数Q取不同值时可蜕化为算数均值滤波(Q=0),谐波均值滤波(Q=-1),Q为正数时适合pepper noise,Q为负数时适合salt noise;
最大值滤波和最小值滤波分别适合pepper noise和salt noise;
中点滤波结合了统计排序和求平均,适合随机分布噪声;
修正的阿尔法均值滤波适合多种噪声情况;
利用第三章空间滤波的知识,使用fspecial()和imfilter()构造上述滤波过程;
(1) 输出图像类型与输入图像类型匹配,同时运算过程保持double精度的实现
inclass = class(g); g = im2double(g); ...;(运算,通过g得到f) f = changeclass(inclass, f);
(2) 几何均值滤波的实现中,将元素的乘积转化为元素(经过ln运算之后)的和(通过恒等式 a*b = exp ( ln(a*b) ) = exp (ln(a)+ln(b)) ),这样就可以使用已有的imfilter('average')函数;
(3) 矩阵元素求负数次方时,为防止0元素的出现,可以整个矩阵加一个极其小的数字,matlab中预设了这样一个变量:eps;
(4) imlincomb = image linear combination;
(5) 线性滤波常用replicate处理边界填充,排序滤波常用symmetric;
5.3.2节实现了自适应空间滤波器(自适应中值滤波器),matlab代码在附录C。(TBC)