4

这是我的作业问题:

HW3_func.m如下:

  • function [cogR, cogC] = HW3_func ( f, i )
  • f: 输入灰度图像
  • i:要检查的强度级别
  • 函数应该找到f强度为 的所有像素i。然后,将这些像素的重心返回为[cogR, cogC]。重心计算为行的平均值和列的平均值。如果没有pixel == i,则返回[0,0]

我不明白如何计算重心。我所做的是:

  1. 声明一个X与图像具有相同维度的矩阵。用全零初始化它
  2. 在输入图像中找到具有给定强度的像素的位置,并将这些位置替换X1

我在正确的道路上吗?

这就是我现在所拥有的:

function [ cogR,cogC ] = HW3_func(f,i)

    [r,c] = size(f)
    X = zeros(r,c)
    for k = 1:r
        for j = 1:c
            if f(k,j)==i
               X(k,j)=1;
            end        
        end
    end

    %disp(X)

    cogR=centroid(X);
    cogC=centroid(X,2);

    disp(cogR)
    disp(cogC)

end
4

1 回答 1

5

您可能只想使用find(),例如

[row_indices, col_indices, values] = find(f==i)

然后,正如您所说,CoG 坐标只是行和列索引的平均值,您现在拥有两个向量。见mean()

于 2013-09-02T21:58:07.617 回答