我已经在网上搜索了几天,寻找最快的方法来捕获 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 上下文的任何想法。我将测试我看到的所有内容并发布结果。