Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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-图像动量计算_Matlab_Image Processing - Fatal编程技术网

Matlab-图像动量计算

Matlab-图像动量计算,matlab,image-processing,Matlab,Image Processing,是否有一个函数或工具箱允许计算图像力矩 我想要应用这个函数的数据类型是二进制的。它基本上是一个用0和1填充的矩阵 Data = 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0

是否有一个函数或工具箱允许计算图像力矩

我想要应用这个函数的数据类型是二进制的。它基本上是一个用0和1填充的矩阵

Data =

     1     0     0     0     0     0
     1     1     1     0     1     1
     0     1     1     1     1     0
     1     0     1     1     0     0
     0     1     1     0     0     0
     1     1     0     0     0     0
     0     0     0     0     0     0
     1     0     0     1     0     0
我想在这类数据上应用图像矩。对于这种类型的数据,有什么最佳的Matlab实现吗?

在我的一篇文章中,我为regionprops函数的一个子集编写了一个实现。目标是找到图像的方向,这是从图像中导出的。以下是与您相关的部分:

function outmom = raw_moments(im,i,j)
    outmom = sum(sum( ((1:size(im,1))'.^j * (1:size(im,2)).^i) .* im ));
end

function cmom = central_moments(im,i,j)
    rawm00 = raw_moments(im,0,0);
    centroids = [raw_moments(im,1,0)/rawm00 , raw_moments(im,0,1)/rawm00];
    cmom = sum(sum( (([1:size(im,1)]-centroids(2))'.^j * ...
                     ([1:size(im,2)]-centroids(1)).^i) .* im ));
end
代码遵循Wikipedia文章中的公式,因此不需要额外的解释。

在我的一篇文章中,我为regionprops函数的一个子集编写了一个实现。目标是找到图像的方向,这是从图像中导出的。以下是与您相关的部分:

function outmom = raw_moments(im,i,j)
    outmom = sum(sum( ((1:size(im,1))'.^j * (1:size(im,2)).^i) .* im ));
end

function cmom = central_moments(im,i,j)
    rawm00 = raw_moments(im,0,0);
    centroids = [raw_moments(im,1,0)/rawm00 , raw_moments(im,0,1)/rawm00];
    cmom = sum(sum( (([1:size(im,1)]-centroids(2))'.^j * ...
                     ([1:size(im,2)]-centroids(1)).^i) .* im ));
end

代码遵循Wikipedia文章中的公式,因此无需额外解释。

感谢您的提示和详细回答。我有一个简短的问题,关于影像时刻。你认为我应该在应用图像瞬间之前先尝试去除图像中的噪声,还是没那么重要。例如,数据矩阵最后一行的2个像素会影响整体结果吗?@Simon:我想这取决于你在应用程序中如何定义噪声,你是指小的断开区域吗?如果是这样的话,MATLAB有一些形态学操作的函数,可以帮助膨胀/侵蚀、BWAREOPEN等。感谢您的及时和详细的回答。我有一个简短的问题,关于影像时刻。你认为我应该在应用图像瞬间之前先尝试去除图像中的噪声,还是没那么重要。例如,数据矩阵最后一行的2个像素会影响整体结果吗?@Simon:我想这取决于你在应用程序中如何定义噪声,你是指小的断开区域吗?如果是这样的话,MATLAB有一些形态学运算的函数,可以帮助膨胀/侵蚀,等等。。