看板 MATLAB 關於我們 聯絡資訊
程式遇到了一個難以理解的結果,請大家一起來找碴。 定義變數如下: row = 矩陣的列數; xs = 紀錄點的x坐標,為一行向量; ys = 紀錄點的y坐標,為一行向量; 有問題的程式碼如下: img = zeros(255,255); img((xs-1)*row+ys) = 255; figure,imshow(img); 結果白色的像素出現的位置完全不是預期中的結果, 請問我坐標轉換(xs-1)*row+ys這個有錯嗎? 正確的寫法應該是什麼?請大家指教了~ -- 家家是家,到家才是家~道道是道,放下見大道 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.27.132
DKer:試試看 img([xs ys])=255; 12/23 09:42
Raymond0710:你xs ys座標是以哪為原點? 矩陣是(1 1)為原點 12/23 16:58
Raymond0710:若xs ys是以(0,0)原點 應該是 (xs+1-1)*row+(ys+1) 12/23 17:02
hoverg:是以(1,1)為原點沒錯,用plot(xs,ys)出來的結果是對的,但 12/23 21:38
hoverg:用(xs-1)*row+ys去做就產生完全不同的結果。 12/23 21:39
Raymond0710:x y互換看看 12/23 21:44
Raymond0710:matlab x y 是相反的 12/23 21:46
Raymond0710:我指的是影像座標 12/23 21:48
hoverg:嗯,這個做法也試過了,還是不得其解呢…有其他可能嗎? 12/23 22:08
Raymond0710:那就怪了...貼code看看 12/23 22:44