2013-02-04 16 views
6

GUID'imi GUIDE kullanarak yaptım. Bir eksenim var (tag = axes1). Eksenlerde bir görüntü görüntülenir. Görüntüyü tıklattığımda (iç eksenler) koordinatları almam gerekir. Resim, eksenlere eklenmediğinde koordinat değerlerini elde ediyorum.Ama görüntü, eksenlerde görüntülenmiyor, eksenleri almayın. Koordinatlar nasıl alınır?MATLAB fare tıklama koordinatlarını nasıl alırsınız

cevap

2

Sen eksenleri Diyelim ki sap imageHandle ile görüntüyü çizilen ettik olduğunu varsayalım Sonra

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

tarafından fare tıklaması pozisyonunu alabilirsiniz

ah = get(imageHandle, 'Parent'); 

görüntü sapından ele alabilirsiniz

imageHandle = imshow(imageObj); 

Sen t ButtonDownFcn atamak olmalıdır: o o görüntü eksenleri işlemez işlemek olun:

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

ve aşağıdaki gibi fare bu işlevinden koordinatları olsun:

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 

Sen benim cevap kontrol etmek için bu küçük demo deneyebilirsiniz:

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

Teşekkür ederim. Çalıştım. – HelloASP

+2

@HelloASP, bu sorudaki tartışmayı sona erdirmek için sorunuzun gereklerini yerine getiriyorsa cevabı kabul edebilirsiniz. –

+0

@HelloASP Lütfen Sameh'ın cevaplarını doğru olarak kontrol ettiğinizden emin olun. thnx:] –

İlgili konular