将2D坐标转换为1D数组

时间:2018-06-24 11:03:50

标签: javascript arrays coordinates

我也读过:

Convert a 2D array index into a 1D index

我正在尝试调试程序,我需要了解如何将2d坐标转换为1d坐标。

如果我有一个IJ坐标,例如:(3284,1352),而我们要访问一个(3492,2188)的一维数组,我们如何实现呢?

直到现在我都尝试过:

1)我认为您在每一行和每一行的每一行内的偏移量为:

i x j = 3284 * 1352 = 4.439.968

如果我们认为坐标(3284,1352)在图形上对应于灰度强度为1的线段,则为

enter image description here

我们尝试访问一维数组,该数组的每个像素都有其灰度值,以像素为单位:4.439.968

enter image description here

灰度强度为14

由于以下原因而很奇怪

-> ITKSnap没有显示段号14:

enter image description here

->我们的细分受众群的灰度级为1,因此我们应该在手动计算要访问的索引后找到该灰度级:

enter image description here

2)我尝试过的第二种方法是将其计算为:

column clicked * number of total rows + row clicked;

j * xLength + i;

在我们的示例中是:

1352 * 3492 + 3284 = 4.724.468

如果我们尝试在数据中找到该像素:

enter image description here

我们发现灰度值为0,与背景相对应。

转换有什么问题?

能帮我吗?

1 个答案:

答案 0 :(得分:2)

我认为您需要这样的内容:index = (y * maxColumns) + x
(看起来像您的j = x和i = y)

我画出一些东西来对其进行视觉化: 2d to 1d array