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
6
A
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
Teşekkür ederim. Çalıştım. – HelloASP
@HelloASP, bu sorudaki tartışmayı sona erdirmek için sorunuzun gereklerini yerine getiriyorsa cevabı kabul edebilirsiniz. –
@HelloASP Lütfen Sameh'ın cevaplarını doğru olarak kontrol ettiğinizden emin olun. thnx:] –