繁体   English   中英

如何在Matlab中对小波分解执行平滑操作?

[英]How to perform a smoothing operation on a wavelet decomposition in Matlab?

我被要求对小波域中的小波系数执行阈值化和平滑处理,以改善图像的去噪。 我可以通过使用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正确地合并到其中。

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

我不确定小波域中低通滤波的思想在哪里。 它绝对是新颖的,但可能不是您想要的。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM