【问题标题】:How to perform a smoothing operation on a wavelet decomposition in Matlab?如何在 Matlab 中对小波分解进行平滑操作?
【发布时间】:2014-09-13 17:16:21
【问题描述】:

我被要求对小波域中的小波系数进行阈值处理和平滑处理,以改善图像的去噪。我可以使用 Matlab 函数 wthcoef2 进行阈值处理,但我没有看到与 Matlab 的小波系数表示一致的平滑函数。

下面是我现在的代码:

F = imread('lena_std.tif');             % Reads the image
F_gray = rgb2gray(F);                   % Converts from RGB to Gray scale

gausQ = input('Add White Gaussian Noise?: ','s');

if gausQ == 'Y'
    F_noisy = imnoise(F_reshape,'gaussian');
    F_wavelet = F_noisy;
else
    F_wavelet = F_gray;
end

%% 
% Asks user for the wavelet decomposition level and the type of wavelet to 
% use.
J = input('Choose the wavelet decomposition level: ');
wavelet = input('Choose the wavelet name: ','s');

[C,S] = wavedec2(F_wavelet,J,wavelet);  % Multi-level wavelet decomposition

%%% Thresholding done by C = wthcoef2(C,S,N,T,SORH); %%%

我的主要问题是小波系数保存在一个向量 C 中,即 1 行乘多列,并且这种表示不允许应用平滑运算符(至少不是以我理解的方式)。

我考虑尝试重塑小波系数向量,但我不知道如何正确地将簿记矩阵 S 合并到其中。

如果有人对此问题有任何见解,请做出相应的回应。如果我需要为这个问题添加更多细节,请告诉我。感谢您的帮助!

【问题讨论】:

标签: matlab image-processing smoothing wavelet decomposition


【解决方案1】:

我不确定您从哪里得到小波域中的低通滤波的想法。这绝对是新奇的,但它可能不是你想要的。

也许更直接的二维快速小波变换可以让您更好地了解哪些系数来自/来自哪个图像位置:

http://uk.mathworks.com/help/wavelet/ug/two-dimensional-discrete-wavelet-analysis.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多