Concatenate the produced arrays from a for loop?
조회 수: 4 (최근 30일)
이전 댓글 표시
I am trying to calculate the mean and standard deviation of the R,G,B channels of 50 image files in sequence. I would like to write out the mean of these into a single column vector per color. This would result in 3 50x1 column vectors - one each for R, G, B. I am able to calculate the means, but they are being output separately. Thanks
for j = 1:50
fname = sprintf('test (%d).bmp',j);
image4d = imread(fname);
Mean = squeeze(mean(image4d, [1 2]));
MeanR = Mean(1,:)
MeanG = Mean(2,:)
MeanB = Mean(3,:)
end
My output looks like:
MeanR =
25.1629
MeanG =
3.1821
MeanB =
0
MeanR =
31.6650
MeanG =
3.6093
MeanB =
0
.
.
For all 50 images.
댓글 수: 2
Sara Boznik
2020년 8월 14일
Maybe you can add one for loop and define k=0 and in each loop is k=k+1, and after you write the
MeanR(k,:) = Mean(1,:)
I am not sure but you can try it.
Wish you best of luck.
채택된 답변
Matt J
2020년 8월 15일
편집: Matt J
2020년 8월 15일
Mean=nan(50,3);
for j = 1:50
fname = sprintf('test (%d).bmp',j);
image4d = imread(fname);
Mean(j,:) = mean( image4d , [1 2]) ;
end
MeanR=Mean(:,1);
MeanG=Mean(:,2);
MeanB=Mean(:,3);
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!