【发布时间】: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 合并到其中。
如果有人对此问题有任何见解,请做出相应的回应。如果我需要为这个问题添加更多细节,请告诉我。感谢您的帮助!
【问题讨论】:
-
记账矩阵是指HAAR DWT / DFT吗?
-
我一直在查看 Matlab 的库,我没有看到任何方法可以隔离所有级别的系数并将它们重新整合到分解矩阵中。我想必须编写一个函数来做到这一点。
-
你看过 OpenCV 的任何解决方案吗?可能会给你一些想法。 docs.opencv.org/modules/imgproc/doc/filtering.html
-
谢谢,我去看看。
标签: matlab image-processing smoothing wavelet decomposition