Привет, у меня возникли проблемы с помещением данных изображения в 3D-массивы при работе с облаком точек с помощью opengl.
Это два моих 3D-массива:
float*** imgdata;
imgdata = new float**[576];
for(int a=0; a<576; a++)
{
*(imgdata + a) = new float*[352];
for(int b=0; b<352; b++)
*(*(imgdata + a) + b) = new float[1];
}
float*** texture;
texture = new float**[576];
for(int a=0; a<576; a++)
{
*(texture + a) = new float*[352];
for(int b=0; b<352; b++)
*(*(texture + a) + b) = new float[3];
}
и здесь я загружаю карту глубины и цветное изображение
GBmp bm0;
GBmp bm1;
bm0.load("depth.bmp");
bm1.load("color.bmp");
теперь я пытаюсь поместить данные двух изображений в 3D-массивы, используя циклы for , это та часть, в которой, похоже, проблема.
for (int i=0; i<bm0.w; i++)
{
for (int j=0; j<bm0.h; j++)
{
for (int x=0; x<bm0.w; x++)
{
for (int y=0; y<bm0.h; y++)
{
texture[i][j][0] = bm1.rgb[x*3+y*bm0.w*3];
texture[i][j][1] = bm1.rgb[x*3+y*bm0.w*3+1];
texture[i][j][2] = bm1.rgb[x*3+y*bm0.w*3+2];
}
}
}
}
for (int i=0; i<bm0.w; i++)
{
for (int j=0; j<bm0.h; j++)
{
for (int x=0; x<bm0.w; x++)
{
for (int y=0; y<bm0.h; y++)
{
imgdata[i][j][0] = bm0.rgb[x+y*bm0.w];
}
}
}
}
Когда я начинаю отладку, я получаю только пустое окно без каких-либо ошибок или необработанных исключений, поэтому я понятия не имею, что пошло не так. Любая помощь или совет очень ценятся.
Вот вторая половина кода. Я использую эти два массива, imgdata и texture, для рисования точек в трехмерном пространстве.
glPointSize (1);
glBegin(GL_POINTS);
for (int i=0; i<bm0.w; i++)
{
for (int j=0; j<bm0.h; j++)
{
glColor3f(texture[i][j][0]/255, texture[i][j][1]/255, texture[i][j][2]/255);
x=imgdata[i][j][0];
y=imgdata[i][j][1];
z=imgdata[i][j][2];
glVertex3f(x,y,z);
}
}
glEnd();
glutSwapBuffers();
free(imgdata);
free(texture);
imgdata
иtexture
? Поскольку вы упоминаете OpenGL, используете ли вы их в качестве аргументов для функций OpenGL? Если да, можете ли вы показать звонки, где вы их используете? У меня есть хорошее представление о том, что, вероятно, не так, но мне нужно увидеть использование массивов. - person Reto Koradi   schedule 07.07.2014texture
, но это не так. Спасибо за добавление дополнительной информации. - person Reto Koradi   schedule 07.07.2014