私はMATLABでGUIを作成していると私は、例えば、マウスを使用して、いくつかのデータポイントを移動する必要があります。MATLABでイメージにマークされたポイントの座標を編集するにはどうすればよいですか?
imshow(someImage, [ ]), hold on;
plot(x, y, '*r')
私はそれをクリックすることで、xとyのベクトルからポイントを選択して使用して、それを移動したいですハツカネズミ。どのように実装できますか?
私はMATLABでGUIを作成していると私は、例えば、マウスを使用して、いくつかのデータポイントを移動する必要があります。MATLABでイメージにマークされたポイントの座標を編集するにはどうすればよいですか?
imshow(someImage, [ ]), hold on;
plot(x, y, '*r')
私はそれをクリックすることで、xとyのベクトルからポイントを選択して使用して、それを移動したいですハツカネズミ。どのように実装できますか?
画像処理ツールボックスからimpoint
を使用すると、すでにポイントをドラッグできる可能性があります。したがって、図を作成し、必要なものをプロットします。次に、impoint(gca)
と呼んで、現在の軸にポイントを置くことができます。ポイントを描いた後、マウスでドラッグすることができます。あなたは第二の点のために再びimpoint
を呼び出すというように...
のポイントの位置を取得するには、作成時にimpoint
-arrayに保存したいし、次に取得する点のそれぞれにgetPosition
を呼び出すことができます座標。
目的の機能を拡張するためのコードを提供していないので、例として2つのボタンを持つ簡単なプロットを作成しました。新しいポイントを配置するための「ポイントの追加」を押します。最初のクリック後、このポイントを移動することができます。すべてのポイントが追加されたら、「完了」をクリックしてポイントの最終座標を読み取ります。
figure; % create new figure
plot([0,1],[0,0],'r'); % plot something nice (your image)
ylim([-1,1]); % set limit of y-axis
h = impoint.empty; % define empty object array of type impoint
btnAdd = uicontrol('String','Add point',...
'Position',[90 60 70 30],...
'Callback', 'h(end+1)=impoint(gca);h(end).Deletable=0;wait(h(end))');
btnDone = uicontrol('String','Done',...
'Position',[165 60 40 30],...
'Callback', 'uiresume(gcbf)');
uiwait(gcf); % wait until 'Done' is pressed
delete(btnAdd); % revove the button
delete(btnDone); % revove the button
% get coordinates of points
pos = zeros(numel(h),2); % preallocate
for k = 1:numel(h)
pos(k,:) = getPosition(h(k)); % read coordinates of points
end
% evaluate points
positivePoints = sum(pos(:,2)>0) % count all points above 0
しかし、ポイント座標が必要で、複数のポイントを選択する必要があります。 – Gabs