1
使用下面的代碼,我可以很容易地在給定的圖像上繪製一個可拖動的矩形。在圖像上繪製多個可拖動的矩形?
figure;
imshow('image.png');
h = imrect;
p = wait(h); % get the rect position
rectangle('Position', p, 'LineWidth',2, 'EdgeColor','r'); % draw here
的問題是:我怎麼能在圖像上繪製多個拖動矩形?此外,矩形的數量是未知的預手。
P.S.如果我已經繪製了矩形的數量,它將變得更加容易。例如,如果我想提請2個rectangels,下面的代碼將工作,即只是把作爲衆多wait()
:
figure;
imshow('image.png');
h = imrect;
p = wait(h); % get the rect position
rectangle('Position', p, 'LineWidth',2, 'EdgeColor','r'); % draw here
p2 = wait(h); % get the rect position
rectangle('Position', p2, 'LineWidth',2, 'EdgeColor','r'); % draw here
謝謝,它的工作。有關如何將'NextFrame'按鈕遷移到'uicontrol'而不是'Done'的想法,因爲我想循環播放一個視頻並繪製它的每一幀? – herohuyongtao
P.S.在你的解決方案中,在繪製第一個矩形後,「完成」按鈕將顯示,對於沒有矩形的情況有任何想法,即在繪製之前顯示「完成」按鈕? – herohuyongtao
用位置初始化'imrect',例如'h = imrect(gca,[10 10 100 100]);'在繼續放置uicontrol之前,它不會等待用戶輸入。對於另一個 - 這是一個完整的問題 - 但基本上你需要一個外部循環來處理保存註釋圖像並提供下一幀(如果有的話)。 – nkjt