将1D函数应用于2D空间

时间:2017-02-13 19:14:36

标签: matlab image-processing 2d gaussian

对于数学堆栈交换,这可能是一个更好的问题,所以如果是这样,请告诉我。

我对具有相当高斯形状的二维图像矩阵进行了一些分析:Sample image

我写了一个简单的MATLAB函数,用于粗略逼近任何特定行/列的1D高斯拟合" slice"这些数据:

function [fit,a,b,c] = getgauss(slice)

    q = 1:length(slice);
    b = find(slice==max(slice));
    a = slice(b);
    temp = gradient(slice);
    c1 = find(temp==max(temp));
    c2 = find(temp==min(temp));
    c = round(mean([c2-b b-c1]));
    fit = a.*exp(-((q-b).^2)./(2*c^2));
    clear c1 c2 q temp

end

我的问题是如何将其变成2D" fit"代替?我是否只在每一行和每列上运行它,然后进行某种交叉乘法?

似乎MATLAB中有一个曲线拟合工具箱,我不能不幸。有什么提示吗?

0 个答案:

没有答案