Converting Cartesian Coordinates to Binary image
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Mohanad Alkhodari
il 14 Giu 2020
Commentato: Ameer Hamza
il 21 Giu 2020
Hello
I have two vectors of X and Y cartesian values in +/-, how to convert them to a binary image of 0's and 1's
Thank you.
I attached my plot.
2 Commenti
Aditya Verma
il 14 Giu 2020
Hi, Could you specify how you want to map X and Y coordinates to the binary image. If I understand it correctly you want to create a 2-D matrix with binary values (Binary Image).
Risposta accettata
Ameer Hamza
il 14 Giu 2020
Something like this
x = randn(1, 5000); % generate random points
y = randn(1, 5000);
img_dimension = [500 500]; % [width height]
img = zeros(img_dimension);
xt = floor(rescale(x, 1, img_dimension(2))); % convert x-y in range of image coordinates
yt = floor(rescale(y, 1, img_dimension(1)));
idx = sub2ind(img_dimension, yt, xt);
img(idx) = 1;
imshow(img)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/315723/image.png)
10 Commenti
Ameer Hamza
il 21 Giu 2020
You can make the circle small and large by specifying the range of rescale() function
xt = floor(rescale(x, 100, img_dimension(2)-100)); % convert x-y in range of image coordinates
yt = floor(rescale(y, 100, img_dimension(1)-100));
create a circle between 100 to 400 pixels, i.e., leave 100 pixels on all sides unoccupied.
Più risposte (1)
Thiago Henrique Gomes Lobato
il 14 Giu 2020
This is an general example you could use:
Cartesian = [ 10,1;
15,10];
imSize=20;
binaryImage= false(imSize);
Cartesian(:,2) = imSize-(Cartesian(:,2)-1); % Comment if you want zero at the top-left corner
for idx=1:size(Cartesian,1)
binaryImage(Cartesian(idx,2),Cartesian(idx,1)) = true; % Note that X-Y index are inverted in indexing
end
figure,imshow(binaryImage)
0 Commenti
Vedere anche
Categorie
Scopri di più su Convert Image Type in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!