[問題] 如何在imshow顯示出來的圖片上畫箭頭?已回收

看板MATLAB作者 (怪龍-卡西歐魯)時間15年前 (2011/02/28 08:28), 編輯推噓3(302)
留言5則, 1人參與, 最新討論串1/1
假設我要用imshow顯示一張圖片fp 打算在圖片上畫一個從(x,y)到(u,v)的箭頭的話 請問要怎麼畫呢? 從google上與板上搜尋到的資訊大多是用quiver畫 但是查了quiver的說明感覺像是給plot之類的函式用的 而且我模仿說明檔的範例寫了下面的code: hold on quiver(x,y,u,v); imshow(fp); hold off 但是imshow顯示出來的圖片上面還是沒有箭頭 想問一下我的用法哪裡有問題呢? 如果不能使用quiver的話 該使用哪個函式可以做到這樣的效果呢? 在這邊先感謝各位的回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 149.169.172.232

02/28 09:04, , 1F
你可以google arrow.m,網路上有寫好的函數。
02/28 09:04, 1F
不好意思之前回得太急了 我剛剛用arrow.m來做 結果還是有問題 像是我寫了下面的code hold on arrow([0,50],[0,70]); imshow(fp); hold off 但是imshow出來的圖片上面沒有箭頭 而且圖片偏到視窗的其中一邊去了 另外有出現錯誤訊息 Warning: ARROW changed the axis limits when adding the arrow. Call ARROW FIXLIMITS to reset them now. > In arrow at 964 可是我打了arrow fixlimits後 卻又出現了下面的錯誤訊息 ??? Error using ==> get Invalid handle object. Error in ==> arrow>arrow_fixlimits at 1149 if any(get(axlimits(k,1),'XLim')~=axlimits(k,2:3)), set(axlimits(k,1),'XLim',axlimits(k,2:3)); end; Error in ==> arrow at 148 arrow_fixlimits(ARROW_AXLIMITS); 想請問一下是為什麼呢? 是我的語法用錯了嗎? 可是我是照著文件裡面的說明來用的 應該是沒有錯才對 可是不知道為什麼就是沒辦法顯示出箭頭 ※ 編輯: hcl012 來自: 70.162.57.56 (02/28 12:41)

02/28 13:04, , 2F
你選用這2組座標影響到圖軸,所以你如果一定要這2組的話
02/28 13:04, 2F

02/28 13:07, , 3F
得在畫箭頭之前,先用axis設定圖軸修改繪圖範圍
02/28 13:07, 3F

02/28 13:20, , 4F
剛剛我再想了一下,也許秀圖再加箭頭會比較好
02/28 13:20, 4F

02/28 13:22, , 5F
先imshow,再arrow
02/28 13:22, 5F
文章代碼(AID): #1DQkmJsK (MATLAB)