【问题标题】:Gaussian Filtering a Matrix Along 2 Axes in Matlab在 Matlab 中沿 2 个轴对矩阵进行高斯滤波
【发布时间】:2019-06-03 23:31:52
【问题描述】:

我正在尝试使用高斯过滤矩阵,但对 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

我会很高兴有任何想法。

【问题讨论】:

    标签: matlab filtering gaussian


    【解决方案1】:

    根据the documentationsigma 参数到imgaussfilt 可以是一个二元向量:

    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
    

    注意这里的顺序:第一个元素表示过滤器的高度,第二个元素表示宽度

    【讨论】:

    • 在对所涉及的功能一无所知的情况下,我怀疑这就是答案。 +1
    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2011-02-15
    • 2017-04-20
    • 2018-01-19
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多