作者hoverg ()
看板MATLAB
標題[討論] 有關矩陣元素存取
時間Thu Dec 22 21:49:15 2011
程式遇到了一個難以理解的結果,請大家一起來找碴。
定義變數如下:
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
1F:→ DKer:試試看 img([xs ys])=255; 12/23 09:42
2F:推 Raymond0710:你xs ys座標是以哪為原點? 矩陣是(1 1)為原點 12/23 16:58
3F:→ Raymond0710:若xs ys是以(0,0)原點 應該是 (xs+1-1)*row+(ys+1) 12/23 17:02
4F:→ hoverg:是以(1,1)為原點沒錯,用plot(xs,ys)出來的結果是對的,但 12/23 21:38
5F:→ hoverg:用(xs-1)*row+ys去做就產生完全不同的結果。 12/23 21:39
6F:推 Raymond0710:x y互換看看 12/23 21:44
7F:推 Raymond0710:matlab x y 是相反的 12/23 21:46
8F:→ Raymond0710:我指的是影像座標 12/23 21:48
9F:→ hoverg:嗯,這個做法也試過了,還是不得其解呢…有其他可能嗎? 12/23 22:08
10F:→ Raymond0710:那就怪了...貼code看看 12/23 22:44