【发布时间】:2013-11-19 00:43:21
【问题描述】:
我是 Matlab 的新手。我有一张图像(大小为 mxnx3),图像上有几个人工选择的点。例如:
p1 = [267,79];
p2 = [96,372];
这些点是左上角 (1,1) 的图像坐标。我正在尝试将其转换为左下角 (0,0) 的笛卡尔坐标。我怎样才能做到这一点?提前致谢!
【问题讨论】:
标签: image matlab coordinates cartesian
我是 Matlab 的新手。我有一张图像(大小为 mxnx3),图像上有几个人工选择的点。例如:
p1 = [267,79];
p2 = [96,372];
这些点是左上角 (1,1) 的图像坐标。我正在尝试将其转换为左下角 (0,0) 的笛卡尔坐标。我怎样才能做到这一点?提前致谢!
【问题讨论】:
标签: image matlab coordinates cartesian
如果我理解正确:只需使用
axis xy
来自axis doc:
AXIS XY 将 MATLAB 置于其默认的“笛卡尔”轴模式。这 坐标系原点在左下角。 x 轴是水平的,从左到右编号。他们 轴是垂直的,从下到上编号。
【讨论】:
如果你需要在代码中直接翻译你的坐标,你可以做一个简单的匿名函数:
img2cart = @(p) [p(1), img.size(2) - p(2)];
q1 = img2cart(p1);
q2 = img2cart(p2);
【讨论】:
img 不是函数的参数,所以它在创建函数时的当前值对函数来说有点“老化”。如果您想要更通用的东西,请使用@(p,img) ie 定义函数,并在调用时将img 作为第二个参数。