1 简介
采用均值滤波和小波变换相结合的图像去噪方法是先将含噪图像进行小波分解,在小波域中,选取适当的阈值对小波系数进行处理,然后对图像信号进行局部重构至第一层,并采用不同的模板对第一层的各细节子图像进行均值滤波,最后将低频近似图像与均值滤波后高频细节图像合成得到去噪后的图像.这种方法与全局Donoho软,硬阈值小波去噪方法和Birge-Massart策略软,硬阈值小波去噪方法相比,其去噪效果更为明显.它在降低了图像的噪声的同时,又尽可能地保留图像的细节,且图像更加平滑.仿真实验证明,该方法是一种有效的图像去噪方法.
2 部分代码
function X = wdenoise(x, measure, sorh, thr, wname, n) % 阈值去噪函数 % x为带噪声图像 % measure表示全局或局部 % sorh表示软硬阈值方法 % thr为阈值 % wname为小波函数名 % n为分解层次 ? ? [C, S] = wavedec2(x, n, wname); % 对图像进行小波分解 switch measure case 'gbl' % 全局阈值方法 dcoef = C( prod(S(1, :)) + 1 : end); % 提取细节部分系数 switch sorh case 'h' % 硬阈值 dcoef = dcoef .* (abs(dcoef) > thr); case 's' % 软阈值 temp = abs(dcoef) - thr; temp = (temp + abs(temp)) / 2; dcoef = sign(dcoef) .* temp; end C( prod(S(1, :)) + 1 : end) = dcoef; case 'lvd' % 局部阈值方法 for i = n:-1:1 % 每层单独处理 k = size(S,1) - i; first = prod(S(1, :)) + ... 3 * sum(S(2:k-1, 1) .* S(2:k-1, 2)) + 1; % 第i层细节系数的起始位置 last = first + 3*prod(S(k,:)) - 1; % 终止位置 dcoef = C(first : last); % 细节系数 switch sorh case 'h' % 硬阈值 dcoef = dcoef .* (abs(dcoef) > thr(i)); case 's' % 软阈值 temp = abs(dcoef) - thr(i); temp = (temp + abs(temp)) / 2; dcoef = sign(dcoef) .* temp; end C(first:last) = dcoef; end end ? X = waverec2(C, S, wname); % 重构图像
3 仿真结果
4 参考文献
[1]彭姝姝. 基于均值滤波和小波变换的图像去噪[J]. 现代计算机, 2019(12):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
|