作者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