How to set up the axes of a binary Image?

5 vues (au cours des 30 derniers jours)
Loren99
Loren99 le 27 Mai 2022
Modifié(e) : Loren99 le 28 Mai 2022
Hi everyone!
I would like to know if there is a method to set up the axes of a logical matrix which is a binary image. In the main code, the matrix (that is the binary image to which I refer) is called 'out' and it has dimension 241 x 321 . I would like 'out' to have in the final plot that the x- axis ranging from -1600 to 1600 and the y-axis ranging from -1200 to 1200. Can anyone help me?
  2 commentaires
Jan
Jan le 27 Mai 2022
"1600 to 1600" ?
Loren99
Loren99 le 27 Mai 2022
@Jan, sorry -1600, just edited

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 27 Mai 2022
img = imread('cameraman.tif');
binaryImage = img > 150;
imshow(binaryImage, 'XData', [-1600, 1600], 'YData', [-1200, 1200]);
% Default tick marks are spaced kind of far apart. Make the closer.
xticks(-1600:200:1600)
yticks(-1200:200:1200)
axis on

Plus de réponses (1)

Jan
Jan le 27 Mai 2022
Modifié(e) : Jan le 27 Mai 2022
out = rand(241, 321) > 0.6; % Binary image
axes('NextPlot', 'add', 'XLim', [-1600, 1600], 'YLim', [-1200, 1200]);
x = linspace(-1600, 1600, 321);
y = linspace(-1200, 1200, 241);
imagesc(y, x, out)
  2 commentaires
Loren99
Loren99 le 27 Mai 2022
@Jan the image you posted here is not good for my purpose. I would like the image 'out' to continue to be like this one here but with the axes -1600 to1600 on x and -1200 to 1200 on y, as I wrote in the question. I've uploaded the folders with the complete main code for clarity.
Jan
Jan le 27 Mai 2022
@Loren99: Sorry, when I'm not at home on my personal computer, I do not have access to Matlab and cannot work with the provided data. Now I can open the MAT file and find this:
Icomplement: [241×321 logical]
M: [241×321 logical]
O: [3×77361 double]
Q: [3×77361 single]
ScenaDir: 'C:\Users\cotug\OneDrive\Desktop\Prova_test/Scenari/'
X: [241×321 double]
Y: [241×321 double]
Z: [241×321 double]
a: [60425×3 triangulation]
bary: [2×77361 single]
d: [77361×1 single]
dir: [3×77361 double]
dir0: [3×1 double]
faces: [60425×3 double]
filename: 'test.mat'
funcDir: 'C:\Users\cotug\OneDrive\Desktop\Prova_test/Subfunctions/'
hit: [1×77361 logical]
mainDir: 'C:\Users\cotug\OneDrive\Desktop\Prova_test/'
new_x: [1×77361 double]
new_y: [1×77361 double]
new_z: [1×77361 double]
orig: [3×77361 double]
out: [241×321 logical]
sz: [3 77361]
tree: [6×1 uint32]
trix: [77361×1 int32]
vertices: [40639×3 double]
x: [1×321 double]
y: [1×241 double]
z: 80
What do you expect the readers to do with this pile of data?
What is wrong with my random test data image, which is a 241 x 321 binary image exactlyas you explain it in the question? My code does what you are asking for: "I would like 'out' to have in the final plot that the x- axis ranging from -1600 to 1600 and the y-axis ranging from -1200 to 1200." If you now provide an image with another contents (more white pixels are the border), this does not make any difference for the code.
What is the difference between the results of my suggestion and your needs? Of course you can insert your data from the out matrix instead of my random test data.

Connectez-vous pour commenter.

Produits


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by