3D viewer cursor coordinates

Hi,
I've been using imshow3Dfull to display a 3D matrix 192*192*17 with pixel value [0,1], it is super useful. I now need to write up a small programme to allow me extract cursor coordinate. I tried control+right click with then export cursor coordinates in 2D only. Does anyone know a way to extract 3D coordinate as [x,y,z]? Alternatively is there another viewer I can use which enables export of [x,y,x] coordinate easily? Essentially I need to write a piece of code which open the data with a 3d viewer, look into the suspicous pixel and click on it which then feed back the [x,y,z] of the cursor.
Link for imshow3dfull:
Many thanks in advance!
Fiona

8 commentaires

Rik
Rik le 16 Nov 2020
Modifié(e) : Rik le 16 Nov 2020
You should be able to modify that viewer to return the [x,y] position and extract the z position from the slider. Did you try that? Alternatively you could search for other 3D viewers on the FEX.
I have a (by now heavily) modified version of viewer3D that I use for such tasks, where I also integrated WindowLevel.
Fiona Gong
Fiona Gong le 16 Nov 2020
Hi Rik, Thanks for swift response. I had a quick look into the code and couldn't quite figure out a good solution. Will try viewer3D next.
Fiona Gong
Fiona Gong le 16 Nov 2020
Hi Rik, can I ask how do you extract datacursor position in viewer3D please? It is not working for me. When I click on it with datacursor mode on, it just won't record any positions....
Rik
Rik le 16 Nov 2020
Can't you create a new button that will get the Value property of your slider?
Fiona Gong
Fiona Gong le 16 Nov 2020
LOL I’m still trying. Not experienced on this figures... thanks Rik
Rik
Rik le 16 Nov 2020
I'm currently on mobile so I can't give you specific help, but this thread should get you started: https://www.mathworks.com/matlabcentral/answers/483657-how-to-create-a-gui
Fiona Gong
Fiona Gong le 16 Nov 2020
This is the slider callback function, when you say 'new button which gets the value property of slider' do you mean a new button in the GUI of imshow3Dfull? Sorry after reading all posts and watch videos still can't quite get my head around it! Thanks in advance!!!
% -=< Slice slider callback function >=-
function SliceSlider (hObj,event, Img)
S = round(get(hObj,'Value'));
set(get(gca,'children'),'cdata',squeeze(Img(:,:,S,:)))
caxis([Rmin Rmax])
if sno > 1
set(stxthand, 'String', sprintf('Slice# %d / %d',S, sno));
else
set(stxthand, 'String', '2D image');
end
end
Rik
Rik le 17 Nov 2020
Yes, that is what I mean. You don't need to change the slider callback, you only need the handle to it.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Just for fun dans Centre d'aide et File Exchange

Commenté :

Rik
le 17 Nov 2020

Community Treasure Hunt

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

Start Hunting!

Translated by