Carregando textura para OpenGL com OpenCV

Vi muitos exemplos de código para carregar texturas para OpenGL, muitos deles um pouco complicados para entender ou exigir novas funções com muito códig

Eu estava pensando que como OpenCV nos permite carregar qualquer formato de imagem; pode ser uma maneira simples e eficiente de carregar texturas para OpenGL, mas estou faltando alguma coisa. Eu tenho esse pedaço de código emc ++:

cv::Mat texture_cv;
GLuint texture[1];
int Status=FALSE;

if( texture_cv = imread("stones.jpg"))  {

        Status=TRUE;                            // Set The Status To TRUE
        glGenTextures(1, &texture[0]);                  // Create The Texture


        glBindTexture(GL_TEXTURE_2D, texture[0]);               
        glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
        glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 
        glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S , GL_REPEAT );
        glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );

        glTexImage2D(GL_TEXTURE_2D, 0, 3, texture_cv.cols, texture_cv.rows, 0, GL_RGB, GL_UNSIGNED_BYTE, texture_cv.data);
}

E não está compilando devido a este erro:

erro C2451: a expressão condicional do tipo 'cv :: Mat' é ilegal

Alguma sugestão? Como devo fazer a conversão da textura cv :: Mat para openGL?

questionAnswers(8)

yourAnswerToTheQuestion