How can I extract color feature of an image without extracting white color?
조회 수: 3 (최근 30일)
이전 댓글 표시
I = imread('coriander.png');
imshow(I);
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
count = 0;
if R == 255 && G == 255 && B == 255
count = count;
else
count = count +1;
end
disp(count);
I don't want to extract white color and just want to count the number of pixel where is not white color.
댓글 수: 0
채택된 답변
Walter Roberson
2018년 9월 21일
count = nnz( R ~= 255 | G ~= 255 | B ~= 255 );
Or more simply,
count = nnz( ~all(I == 255, 3) );
댓글 수: 2
Image Analyst
2018년 9월 21일
If you want a 2-D image, you can't because the white pixels must be in there because 2-D images must remain rectangular. If you want a 1-D vector, you can delete them
mask = R==255 & G==255 & B=255;
RwithoutWhite = R(~mask);
GwithoutWhite = G(~mask);
BwithoutWhite = B(~mask);
Again, those are vectors (lists of pixel values), NOT images. However you can reassign the white pixels to some other value if you want
R(mask) = 137; % Whatever value you want.
THIS will still be a 2-D image.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!