Wie man die Koordinaten des angeklickten Punkt, wenn die Daten im cursor-Modus in matlab?
Ich versuche zu entwerfen und Programmieren Sie ein GUI in Matlab, mit denen ich nicht vertraut bin.
Im Grunde genommen habe ich zwei Bauteile, die "Achsen" und "Listenfeld". Es ist ein RGB-Bild in den Achsen. Ich Plane, fügen Sie den ausgewählten Punkt aus dem Listenfeld.
Der folgende code funktioniert ganz gut, aber ich würde gerne machen, arbeiten, wenn Sie den Daten-cursor auf.
Wie kann ich machen, arbeiten, wenn Sie den Daten-cursor auf?
% 100x100x3 RGB image
RgbImage = randi(100, 100, 100, 3);
% Draw the image
axesHandle = axes();
imageHande = imagesc(RgbImage);
axis image;
% ButtonDownFc
set(imageHandle, 'ButtonDownFcn', @imageButtonDownFcn);
function imageButtonDownFcn(hObject, eventdata)
p = get(gca, 'CurrentPoint');
x = floor( p(1) );
y = floor( p(2) );
% Some code to add the [x y] to the list box
end
Edit 1:
Das problem ist, dass die Funktion imageButtonDownFcn wird nicht ausgelöst, wenn Daten-cursor auf.
- Nehmen Sie inspiration von hier - mathworks.in/matlabcentral/fileexchange/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde anfangen, indem Sie eine eigene update-funktion für die Daten-Cursor
Dann können Sie die position in dieser Funktion wie diese:
dann haben Sie die position in
pos
und Sie können hinzufügen%Some code to add the [x y] to the list box
wiederVersuchen, diese für den Teil, der übrig ist in deinem code. Denken Sie daran, zu Bearbeiten "listbox1", um die Tags für die listbox-in Ihrem Fall -
Lassen Sie uns wissen, wenn es funktioniert!