我说了一个图像 IMG = imread(' test.jpg放在&#39)
如何计算每行中所有像素值,以便在右侧的1D信号上投影,并为每个列的像素值计算投影到底部的像素值。 这是否意味着我需要在行和列中找到总和或像素。
对行像素和列像素求和的语句是什么?
是行像素之和的这个语句:sum_all = sum(img(:));如果是这样,列像素之和的声明是什么?
答案 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个值, 它是什么意思如果有周期性的高点或低点?