ginput
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
bahar cham
el 13 de Feb. de 2012
Editada: Youssef Khmou
el 10 de Oct. de 2013
Hi all,
I have 160 slices(408*544*160) with a 3d patch on it. I need to find one point on each slice and take in return a 3d matrix of patch: it is my idea but it seems has a fundamental misunderstanding.
d=zeros(408,544,160);
for i=1:160
figure,imshow(image(:,:,i)),[]);
[a,b]=ginput(1);
z=image(a,b,i);
d(a,b,i)=z;
end
how can i fix it?
I was wondering if I can select random point in each slice?when I use ginput, there is noting to stop it from receiving points. How can take it in return as 3d matrix?
0 comentarios
Respuesta aceptada
Sean de Wolski
el 13 de Feb. de 2012
d=zeros(408,544,160);
image = rand(size(d));
for i=1:160
figure,imshow(image(:,:,i),[]);
[a,b]=ginput(1);
a = round(a);
b = round(b);
z=image(a,b,i);d(a,b,i)=z;
end
You have to round the points returned from ginput to account for floating points. I would also recommend against opening a new figure on each iteration.
2 comentarios
Sean de Wolski
el 13 de Feb. de 2012
well if you run the above code, you'll end up with 160 open figures. Which is a lot of clutter, not to mention used memory. I would either close the figure after ginput() or overwrite the image with each call to imshow().
Más respuestas (0)
Ver también
Categorías
Más información sobre Specifying Target for Graphics Output en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!