次のように保存されたデータファイルがあります:
6 バイト (3*16 ビット) ヘッダー。- バイト 0+1 (16 ビット): x 次元 - バイト 2+3 (16 ビット): y 次元 - バイト 4+5 (16 ビット): z 次元 その後: x、y、z の 3D ボリューム データ注文。ボクセルあたり 16 ビット (2 バイト)、これらの 16 のうち 12 ビットのみが使用されます。
データをロードし、C++ を使用して配列に格納したい
どうすれば.dataファイルから2バイトをロードできますか実装したいアルゴリズムは
load(String filename)
{
File fp = openfile(filename);
Byte2 sizeX, sizeY, sizeZ;
sizeX = readfile(sizeof(Byte2),fp);
sizeY = readfile(sizeof(Byte2),fp);
sizeZ = readfile(sizeof(Byte2),fp);
UnsignedShort data[sizeX*sizeY*sizeZ];
for(Integer z=0; z < sizeZ; z++) {
for(Integer y=0; y < sizeY; y++) {
for(Integer x=0; x < sizeX; x++) {
data[x+y*sizeX+z*sizeX*sizeY] = readfile(sizeof(Byte2),fp);
}
}
}
}