Загрузка текстуры для OpenGL с OpenCV
Я видел много примеров кода для загрузки текстур дляOpenGLмногие из них немного сложны для понимания или требуют новых функций с большим количеством кода.
Я думал, что какOpenCV позволяет нам загружать любой формат изображения, это может быть простой эффективный способ загрузки текстур вOpenGL, но я что-то упускаю. У меня есть этот кусок кода вC ++:
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);
}
И это не компилируется из-за этой ошибки:
ошибка C2451: условное выражение типа 'cv :: Mat' недопустимо
Какие-либо предложения? Как мне сделать преобразование из cv :: Mat в текстуру openGL?