Matlab中的wdenoise-这是2D还是3D过滤器?
我正在使用matlab中的函数wdenoise对存储为3D矩阵[m x n x time]的图像堆栈进行去噪。我正在运行wdenoise通过第三维度,时间。它的工作原理和预期的一样,但是当我从堆栈中查看单个图像时,它们看起来也在空间上平滑了。这是时间平滑的副产品,还是函数中存在在所有维度上去噪/平滑的功能Matlab中的wdenoise-这是2D还是3D过滤器?,matlab,Matlab,我正在使用matlab中的函数wdenoise对存储为3D矩阵[m x n x time]的图像堆栈进行去噪。我正在运行wdenoise通过第三维度,时间。它的工作原理和预期的一样,但是当我从堆栈中查看单个图像时,它们看起来也在空间上平滑了。这是时间平滑的副产品,还是函数中存在在所有维度上去噪/平滑的功能 my_matrix = [400x400x60]; my_denoised_matrix=zeros(size(my_matrix)); for i = 1:length(my_matr
my_matrix = [400x400x60];
my_denoised_matrix=zeros(size(my_matrix));
for i = 1:length(my_matrix)
for j = 1:length(my_matrix)
my_denoised_matrix(i,j,:) = wdenoise(squeeze(my_matrix(i,j,:)));
end
end
同样,每个像素的时间轮廓是平滑的,这是我所期望的。但为什么最终结果看起来在空间上也是平滑的呢
感谢您的帮助。它们似乎是作为时间平滑的副产品在空间上平滑的 行
my_去噪_矩阵(i,j,:)=wdenoise(挤压(my_矩阵(i,j,:)))代码>仅在第三维中过滤(时间平滑)
通过使用复制60次的同一图像,可以验证没有空间过滤:
%Build "my_matrix" [400x400x60];
%Same image is duplicated 60 times.
I = imresize(im2double(imread('cameraman.tif')), [400, 400]);
my_matrix = repmat(I, 1, 1, 60);
my_denoised_matrix=zeros(size(my_matrix));
for i = 1:length(my_matrix)
for j = 1:length(my_matrix)
my_denoised_matrix(i,j,:) = wdenoise(squeeze(my_matrix(i,j,:)));
end
end
%Check the difference between I and my_denoised_matrix:
D = I - my_denoised_matrix;
max_abs_diff = max(abs(D(:)));
disp(['max_abs_diff = ', num2str(max_abs_diff)]);
它们似乎是作为时间平滑的副产品在空间上平滑的
行my_去噪_矩阵(i,j,:)=wdenoise(挤压(my_矩阵(i,j,:)))代码>仅在第三维中过滤(时间平滑)
通过使用复制60次的同一图像,可以验证没有空间过滤:
%Build "my_matrix" [400x400x60];
%Same image is duplicated 60 times.
I = imresize(im2double(imread('cameraman.tif')), [400, 400]);
my_matrix = repmat(I, 1, 1, 60);
my_denoised_matrix=zeros(size(my_matrix));
for i = 1:length(my_matrix)
for j = 1:length(my_matrix)
my_denoised_matrix(i,j,:) = wdenoise(squeeze(my_matrix(i,j,:)));
end
end
%Check the difference between I and my_denoised_matrix:
D = I - my_denoised_matrix;
max_abs_diff = max(abs(D(:)));
disp(['max_abs_diff = ', num2str(max_abs_diff)]);
如果您想知道滤波器的作用,请将其应用于合成信号/图像,从而知道在不同情况下预期的输出。通常,t=0(50,50,50);t(25,25,25)=1
是线性滤波器的良好测试用例(根据需要调整大小)。与卷积核相同的滤波结果。您将能够看到它是否仅沿三维延伸或沿其他维度延伸。如果您想知道过滤器的作用,请将其应用于合成信号/图像,从而知道在不同情况下预期的输出。通常,t=0(50,50,50);t(25,25,25)=1
是线性滤波器的良好测试用例(根据需要调整大小)。与卷积核相同的滤波结果。您将能够看到它是否仅沿三维延伸,还是也沿其他维度延伸。