How to store values from a for loop in an array/matrix?

조회 수: 7 (최근 30일)
JOEY HOESER
JOEY HOESER 2021년 3월 27일
댓글: JOEY HOESER 2021년 3월 27일
I have this given 10x10 pixel image, and I would like to create a function that returns the column and row position that has the most red pixels.This is what I have so far, I am stuck on how to correctly store all the values and not just return the ending column and row. In addition if two columns or rows have the same amount it should return the lowest index value. Thanks for the help.
img = 'Image16.tif';
myImg = imread(img);
mySize = size(myImg);
redArr = myImg(:, :, 1);
greenArr = myImg(:, :, 2);
blueArr = myImg(:, :, 3);
isRed = (redArr == 255) & (greenArr == 0) & (blueArr == 0);
for i = 1:mySize(1)
rowCount = (sum(isRed(i,:)));
for j = 1:mySize(2)
colCount = (sum(isRed(:,i)));
end
end
  댓글 수: 2
dpb
dpb 2021년 3월 27일
'... given 10x10 pixel image,... returns the column and row position that has the most red pixels."
There is only one color value at each pixel? How can there be a maximum position location?
JOEY HOESER
JOEY HOESER 2021년 3월 27일
That's correct. The function wants the logical 1 or 0 maximum sum of the rows and columns of the image.

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2021년 3월 27일
img = randi([0,1], 10, 10, 3) * 255;
imgIsRead = (img(:, :, 3) == 255);
[v1, index1] = max(sum(imgIsRed, 1))
[v2, index2] = max(sum(imgIsRed, 2))

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Convert Image Type에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by