2013-02-04 29 views
6

मैंने GUIDE का उपयोग करके अपना जीयूआई बनाया है। मेरे पास एक अक्ष है (टैग = axes1)। अक्ष में एक छवि प्रदर्शित होती है। जब मैं छवि (अक्ष के अंदर) पर क्लिक करता हूं तो मुझे निर्देशांक प्राप्त करने की आवश्यकता होती है। जब मुझे अक्ष में छवि नहीं जोड़ा जाता है तो मुझे समन्वय मान प्राप्त होते हैं। लेकिन अक्ष अक्षरों में प्रदर्शित होती है, अक्ष को प्राप्त नहीं करते हैं। निर्देशांक कैसे प्राप्त करें?MATLAB माउस को निर्देशांक कैसे प्राप्त करें

उत्तर

2

आप कुल्हाड़ियों से

ah = get(imageHandle, 'Parent'); 

छवि संभाल से संभाल तो फिर तुम से

p = get(ah, 'CurrentPoint'); 
21

माउस क्लिक स्थिति प्राप्त कर सकते हैं मान लें कि आप संभाल imageHandle के साथ छवि साजिश रची किया है प्राप्त कर सकते हैं कि:

imageHandle = imshow(imageObj); 

आपको ButtonDownFcn को टी को असाइन करना चाहिए वह छवि संभाल कुल्हाड़ियों को संभाल नहीं है कि:

set(imageHandle,'ButtonDownFcn',@ImageClickCallback); 

और इस प्रकार माउस इस समारोह से निर्देशांक मिलती है:

function ImageClickCallback (objectHandle , eventData) 
    axesHandle = get(objectHandle,'Parent'); 
    coordinates = get(axesHandle,'CurrentPoint'); 
    coordinates = coordinates(1,1:2); 
    %// then here you can use coordinates as you want ... 
end 

तुम मेरे जवाब की जांच करने के लिए इस छोटे डेमो कोशिश कर सकते हैं:

function demoOnImageClick 
clc;clear; 
imObj = rand(500,500); 
figure; 
hAxes = axes(); 
imageHandle = imshow(imObj); 
set(imageHandle,'ButtonDownFcn',@ImageClickCallback); 

function ImageClickCallback (objectHandle , eventData) 
axesHandle = get(objectHandle,'Parent'); 
coordinates = get(axesHandle,'CurrentPoint'); 
coordinates = coordinates(1,1:2); 
message  = sprintf('x: %.1f , y: %.1f',coordinates (1) ,coordinates (2)); 
helpdlg(message); 
end 

end 
+0

धन्यवाद। यह काम किया। – HelloASP

+2

@HelloASP, अगर आप इस प्रश्न में चर्चा समाप्त करने के लिए प्रश्न की अपनी आवश्यकताओं को पूरा करते हैं तो आप जवाब स्वीकार कर सकते हैं। –

+0

@HelloASP कृपया समेह के उत्तरों को सही के रूप में जांचना सुनिश्चित करें। thnx:] –