How do I get a count of all the pixels having a certain RGB value in an image?
5 ビュー (過去 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!