读取B& W图像堆栈的最佳和低内存选项是什么,它包含ISO卷的0/1值,并将其写入布尔体素数组?即2k平方像素的2k图像提供800MB的布尔值。
我开始写一个3D boolan数组boolean [z,y,x] ......它不起作用?!:我需要一个二维数组的数组boolean [x,y](怎么样?)
II已经编写了一个程序,它通过X,Y遍历图像堆栈以检测卷的边缘,即图像从0变为1和从1变为0的空间中的每个点,并且它给出了用于泊松磁盘网格划分的对象的顶点和法线。我现在还需要遍历Z,而不加载2000次图像N次。
体素总共可达到80亿个体素。
我需要哪个?如何在C / C#/ JS中声明数组?
感谢您的任何提示。
答案 0 :(得分:2)
挑战在于使用最小的数据类型来表示每个体素的开/关值。将其简化为10x10x10体素空间。
可以制作长度为1000的1D布尔数组,即
var myvoxels : boolean[]= new boolean[x*y*z];
然后使用函数访问它:
function boolreturn(x,y,z) : boolean
{
return myvoxels[ z*10*10+y*10+x]
}
所以尺寸为10x10x10的最后一个体素的阵列位置为900 + 90 + 9 = 999.
它与100个体素相同,其中有80亿个体素。
我认为它比使用1d阵列更复杂因为我已经转换了一个行进立方体代码,它以模数和devide / float的形式读取每个空格,以了解对象在1d数组中的位置,这可能是精神上的负担并且在3D中编码速度慢。以上应该容易。