OpenGLのglGetTexImage()からの出力を使用してOpenCV Mat()を作成しようとしています。情報を取得しようとしているテクスチャは、呼び出しを使用して作成されました。glGetTexImage()を使用してOpenCVマットを取得する
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8UI, iWidth, iHeight, 0, GL_RGBA_INTEGER, GL_UNSIGNED_BYTE, pImageData);
ですので、これを使用しようとしました。誰もが、私はこれが動作するために)(glGetTexImageの形式や種類を設定するにはどうあるべきか知っている場合、私は疑問に思って何
unsigned char* texture_bytes = (unsigned char*)malloc(sizeof(unsigned char)*texture_width*texture_height * 3);
glGetTexImage(GL_TEXTURE_2D, 0, GL_BGR, GL_UNSIGNED_BYTE, texture_bytes);
Matrix = Mat(texture_height, texture_width, CV_8UC3, texture_bytes);
です。また、Mat()の型を設定する必要がありますか?
コンテキストが正しく設定されており、入力されたテクスチャが正しいと仮定できます。 OpenGLを使用して画面にテクスチャを表示することでこれを確認しました。前もって感謝します!
あなたの現在の試行にはどのような問題がありますか?あなたは全くデータを取得していませんか?または間違っているようなデータですか?パラメータが私に有効であるように見えても、 'glGetError()'を呼んでみてください。 –
テクスチャからtexture_bytesデータを取得しようとすると、私の問題が発生します。 texture_bytesは空白を返します( "ffffffffffffffffff"のように)。はい、私は全くデータを取得していません。テクスチャがレンダリングされ、OpenGLでうまく表示されるので、データがそこにあることは肯定的ですが、OpenCVでは灰色の画面しか表示されません。私はこれが少し質問を明確にすることを願っています:) –
修正、私はtexture_dataから得るように見える唯一のデータは、 "Ï¡¡¡ –