How to find (x,y) coordinates of white pixel.
26 views (last 30 days)
Show older comments
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/670533/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/670538/image.png)
I want to find (x,y) coordinates of the white pixel as marked in the attached Figure. I have tried some things but it is not giving me the exact solution. Can anyone please help me in this. I will be forever grateful for your help.
DDD=imread('binaryimage.png'); % Read an image
[rows, columns] = find(DDD',1,'last'); % Transpose 'DDD'
xTop = rows(1)
yTop = columns(1)
% Plot it
hold on;
plot(xTop, yTop, 'r+', 'MarkerSize', 10, 'LineWidth', 3);
hold off;
0 Comments
Answers (2)
Image Analyst
on 11 Jul 2021
You can get all the coordinates of the white pixels using find().
[rows, columns] = find(binaryImage);
That gives yo a list of coordinates for every white pixel ignoring which blob it belongs to.
Or you can do it on a blob-by-blob basis using regionprops() and asking for PixelList
props = regionprops(binaryImage, 'PixelList');
10 Comments
Image Analyst
on 14 Jul 2021
Did you read my last comment? No more help will come unless you attach the binary image.
KSSV
on 1 Jul 2021
I0 = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/670538/image.png') ;
I1 = rgb2gray(I0) ;
I2 = imbinarize(I1) ;
[y1,x1] = find(I2==0) ; % get black pixels to reduce white background
I = I0(min(y1):max(y1),min(x1):max(x1),:) ; % Get the only black part of the image
I1 = rgb2gray(I) ;
I2 = imbinarize(I1) ;
[y,x] = find(I2) ; % get white pixels in image I
x = x+min(x1) ; y = y+min(y1) ; % white pxiels in original image
imshow(I0)
hold on
plot(x,y,'.r')
5 Comments
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!