在 Matlab 中沿 2 个轴对矩阵进行高斯滤波
Gaussian Filtering a Matrix Along 2 Axes in Matlab
我正在尝试使用高斯过滤矩阵,但对 x 轴和 y 轴使用不同的 sigma。 x轴代表水平坐标,y轴代表时间,因此我想对它们进行不同的过滤。
我可以使用一个 sigma 进行过滤,但我不知道如何使用特定于轴的两个 sigma 进行过滤。我使用 imgaussfilt。
% example values
A = rand(6000,1921);
sigma_x = 10;
sigma_y = 20;
B = imgaussfilt(A,sigma_x);
B = double(B)/ max(B(:));
imshow(B)
colormap(jet)
colorbar
我很乐意提供任何想法。
根据 the documentation,imgaussfilt
的 sigma
参数可以是二元向量:
A = rand(6000,1921);
sigma_x = 10;
sigma_y = 20;
B = imgaussfilt(A,[sigma_y,sigma_x]);
B = double(B)/ max(B(:));
imshow(B)
colormap(jet)
colorbar
注意这里的顺序:第一个元素表示过滤器的 height,第二个元素表示 width.
我正在尝试使用高斯过滤矩阵,但对 x 轴和 y 轴使用不同的 sigma。 x轴代表水平坐标,y轴代表时间,因此我想对它们进行不同的过滤。
我可以使用一个 sigma 进行过滤,但我不知道如何使用特定于轴的两个 sigma 进行过滤。我使用 imgaussfilt。
% example values
A = rand(6000,1921);
sigma_x = 10;
sigma_y = 20;
B = imgaussfilt(A,sigma_x);
B = double(B)/ max(B(:));
imshow(B)
colormap(jet)
colorbar
我很乐意提供任何想法。
根据 the documentation,imgaussfilt
的 sigma
参数可以是二元向量:
A = rand(6000,1921);
sigma_x = 10;
sigma_y = 20;
B = imgaussfilt(A,[sigma_y,sigma_x]);
B = double(B)/ max(B(:));
imshow(B)
colormap(jet)
colorbar
注意这里的顺序:第一个元素表示过滤器的 height,第二个元素表示 width.