Меня попросили выполнить пороговое значение и сглаживание коэффициентов вейвлета в области вейвлета, чтобы улучшить шумоподавление изображения. Я могу выполнить пороговое значение, используя функцию 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.
Если у кого-то есть какие-либо представления по этому вопросу, пожалуйста, ответьте соответствующим образом. Если мне нужно добавить больше деталей к этому вопросу, пожалуйста, дайте мне знать. Спасибо за вашу помощь!