Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将1D函数应用于二维空间_Matlab_Image Processing_2d_Gaussian - Fatal编程技术网

Matlab 将1D函数应用于二维空间

Matlab 将1D函数应用于二维空间,matlab,image-processing,2d,gaussian,Matlab,Image Processing,2d,Gaussian,对于数学堆栈交换来说,这可能是一个更好的问题,所以如果是这样,请告诉我 我正在对具有相当高斯形状的2D图像矩阵进行一些分析: 我编写了一个简单的MATLAB函数,用于获得该数据任何特定行/列“切片”的1D高斯拟合的粗略近似值: function [fit,a,b,c] = getgauss(slice) q = 1:length(slice); b = find(slice==max(slice)); a = slice(b); temp = gradient(

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

我正在对具有相当高斯形状的2D图像矩阵进行一些分析:

我编写了一个简单的MATLAB函数,用于获得该数据任何特定行/列“切片”的1D高斯拟合的粗略近似值:

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“拟合”?我是不是只是在每一行和每一列上运行它,然后进行某种交叉乘法


很遗憾,MATLAB中似乎有一个曲线拟合工具箱,我负担不起。有什么建议吗?

你是在问二维拟合的数学过程吗?你可能应该做某种形式的MLE(最大似然估计),因为你知道二维拟合的形状。这个问题可能也适合。。。