2016-10-12 65 views
0

画像をクリックした後にカーソル位置を取得して、対応するピクセル座標を取得する必要があります。 これは私がこれまで行ってきたことです。図の空の部分をクリックする限り動作します(画像をクリックすると、コールバックはトリガーされません)。Matlabで画像のカーソル位置を取得する方法

image(my_image); 
set(gca, 'ButtonDownFcn', @click); 

function click(o, event) 
    pt = get(o, 'CurrentPoint') 
end 

だからその後、私はこの1つを試してみました。その後、

image(my_image, 'ButtonDownFcn', @click); 

function click(o, event) 
    pt = get(o, 'CurrentPoint') 
end 

しかし、それは画像のクラスは「CurrentPointの」という名前の任意のフィールドが含まれていないことを私に伝えます。画像から何らかの種類の軸を取得する必要があると思いますが、その方法はわかりません。

答えて

0

私は以前も同様の問題を解決しなければなりませんでした。

カーソル位置

function figure1_WindowButtonMotionFcn(~, ~, ~) 

を追跡する、次のGUIのような空のコールバックを追加する場合は、図1.ハンドルがマウスの位置を説明プロパティcurrentPointを持つ必要があります。あなたは図1.ハンドルへのアクセスを持ってクリックイベント関数を記述する場合、このような何か:

image(my_image, 'ButtonwDownFcn', ... 
    @(hObject,eventdata)myGui('click',hObject,eventdata,guidata(hObject)) 

は、マウスの位置

mouseLocation = get(handles.figure1, 'currentPoint'); 

にアクセスすることで、以下の行を含める次に、あなたがする必要がありますFigure内のAxesの位置を使用して、マウスの位置をピクセル位置に変換します。

0

まあ、私は私の問題の解決策を見つけました。画像に軸を指定し、 'Parent'属性で取得するだけでした。

im = image(0, 0, my_image); 
set(im, 'ButtonDownFcn', @click); 

function click(o, event) 
    pt = get(get(o, 'Parent'), 'CurrentPoint') 
end 
関連する問題