How do I get a count of all the pixels having a certain RGB value in an image?
3 次查看(过去 30 天)
显示 更早的评论
I have a black and white image with a green arrow. I need a count of all the green pixels alone from the image. OR, I need a way to select just the green pixels in order to measure the length and midpoint of the arrow. Can someone help?
gcount=0;
for i=1:width
for j=1:height
% this gives me just the green channel and the ans is incorrect since the rest of my image is black and white
% if I(i,j,1)==0 & I(i,j,2)==255 & I(i,j,3)==0
if impixel(I,i,j)= =[0 255 0] %this logic is correct but takes way too long
gcount=gcount+1;
end
end
end
0 个评论
采纳的回答
Walter Roberson
2016-4-26
sum(sum(YourImage(:,:,1) == 0 & YourImage(:,:,2) == 255 & YourImage(:,:,3) == 0))
3 个评论
Walter Roberson
2016-4-27
mask = YourImage(:,:,1) == 0 & YourImage(:,:,2) == 255 & YourImage(:,:,3) == 0;
Now you can calculate the centroid of mask
更多回答(1 个)
Image Analyst
2016-4-27
There is something called the "color frequency image" and the code is here http://www.mathworks.com/matlabcentral/fileexchange/28164-color-frequency-image
You can also do color segmentation using demos from my File Exchange and compute pixel count or area fraction. http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!