计算行和列中的像素数

时间:2016-05-11 16:51:19

标签: matlab

我说了一个图像 IMG = imread(' test.jpg放在&#39)

如何计算每行中所有像素值,以便在右侧的1D信号上投影,并为每个列的像素值计算投影到底部的像素值。 这是否意味着我需要在行和列中找到总和或像素。

对行像素和列像素求和的语句是什么?

是行像素之和的这个语句:sum_all = sum(img(:));如果是这样,列像素之和的声明是什么?

4 个答案:

答案 0 :(得分:1)

您应该在matlab中查看sum函数的文档。第二个参数指定要求的维。如果dimension=1,那么您要对行进行求和。如果是dimension=2,那么您想要对列进行求和。因此,您有简单的代码:

% Sum the rows
sum_rows = sum(img);
% Alternate form to sum the rows
sum_rows = sum(img, 1);

% sum the columns
sum_cols = sum(img, 2);

答案 1 :(得分:0)

您可以使用img(:,x)表示法切割n维数组。 :表示您需要该像素的所有索引。如果您想要一行的子集,也可以img(a:b,x)

使用此方法,您可以将图像的一行求和为sum(img(:,n)),其中n是您要求和的行。同样,对于列,它将是sum(img(n,:))

答案 2 :(得分:0)

我做了以下事情:

IMG = imread( 'test4.jpg'); sum_row = sum(img,2);
这给了我每行的总和,,, sum_col = sum(img,1);
这给了我每列的总和,,,

是正确的吗?

答案 3 :(得分:0)

是的,我弄错了, 所以说我最后有2个值, 它是什么意思如果有周期性的高点或低点?