Търсих в мрежата от няколко дни в търсене на възможно най-бързия начин да заснема OpenCV уеб камера и да го покажа в контекст на OpenGL. Засега това изглежда работи добре, докато не трябва да увелича.
void Camera::DrawIplImage1(IplImage *image, int x, int y, GLfloat xZoom, GLfloat yZoom)
{
GLenum format;
switch(image->nChannels) {
case 1:
format = GL_LUMINANCE;
break;
case 2:
format = GL_LUMINANCE_ALPHA;
break;
case 3:
format = GL_BGR;
break;
default:
return;
}
yZoom =- yZoom;
glRasterPos2i(x, y);
glPixelZoom(xZoom, yZoom); //Slow when not (1.0f, 1.0f);
glDrawPixels(image->width, image->height, format, GL_UNSIGNED_BYTE, image->imageData);
}
Чувал съм, че може би подходът на FBO ще бъде дори по-бърз. Някакви идеи за най-бързия възможен начин за заснемане на OpenCV уеб камера в OpenGL контекст. Ще тествам всичко, което видя и ще публикувам резултати.
glDrawPixels()
определено не е чудесен начин да го направите. Нещо като това може да е по-добро. - person Flexo   schedule 26.04.2012glTexImage2D()
и след това чертане презglBegin(GL_QUADS)
? - person karlphillip   schedule 10.05.2012