Textura de carga para OpenGL con OpenCV

He visto muchos ejemplos de código para cargar texturas para OpenGL, muchos de ellos son un poco complicados de entender o requieren nuevas funciones con mucho código.

Estaba pensando que como OpenCV nos permite cargar cualquier formato de imagen, puede ser una forma simple y eficiente de cargar texturas en OpenGL, pero me falta algo. Tengo este fragmento de código enc ++:

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);
}

Y no se está compilando debido a este error:

error C2451: la expresión condicional del tipo 'cv :: Mat' es ilegal

¿Alguna sugerencia? ¿Cómo debo hacer la conversión de cv :: Mat a textura OpenGL?

Respuestas a la pregunta(8)

Su respuesta a la pregunta