Using an image, how do I find the coordinates of pixels of a certain colors?
25 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
From the image pasted below, I want to make 2 different calculations.
- Caclulate the center of mass of the white pebble. To do this, I want to find all the coordinates of the white pebble and the black dot. Once I get the total number of rows and columns, I want to average this to find center of mass. I am trying to write a script that tells matlab to store all the values that are not red pixels.
- Caclulate the center of mass of only the black dot. I find all the coordinates of the black dot, and then average the total number of rows and columns to find the center of mass.
I have also pasted the code I have so far. The loop I made is not working and when i tried other variations, I had difficulty writing the code so that it only read the pixels of the colors I want.
image = imread('red_backpebble1.png');
redChannel = image(:,:,1);
greenChannel = image(:,:,2);
blueChannel = image(:,:,3);
% black pixels are where red channel and green channel and blue channel in an rgb image are 0;
blackpixelsmask = redChannel == 0 & greenChannel == 0 & blueChannel == 0;
[rows, columns, number] = size(image);
[x, y] = meshgrid(1: columns, 1:rows);
while k == blackpixelsmask
fprintf('Pixel #%d is at (x, y) = (%d, %d)\n',...
k, x(k), y(k));
end
com_x = rows/2;
com_y = columns/2;
disp("The Center of Mass of the black dot is ("+com_x+","+com_y+")")
0 commentaires
Réponses (1)
Mahesh Taparia
le 15 Déc 2020
Hi
You can use regionprops function to find the pixel list and centroid of the white and black part. For more information, you can refer this documentation. For illustration, consider the below code:
I=imread('image.png');
whitePart=(I(:,:,1)==255)&(I(:,:,2)==255)&(I(:,:,3)==255);
blackPart=(I(:,:,1)==0)&(I(:,:,2)==0)&(I(:,:,3)==0);
figure;imshow(whitePart)
figure;imshow(blackPart)
blachRegion=regionprops(blackPart,'all');
whiteRegion=regionprops(whitePart,'all');
Hope it will help!
0 commentaires
Voir également
Catégories
En savoir plus sur Image Filtering and Enhancement dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!