私は数日、OpenCVのウェブカメラのキャプチャを取ってOpenGLのコンテキストで表示する方法を探していました。これまでのところ、ズームが必要になるまで、これは正常に機能するようです。最も速いOpenCV 2 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()'は間違いなく良い方法です。 [this](http://www.songho.ca/opengl/gl_pbo.html#unpack)のようなものが良いかもしれません。 – Flexo
今日私は4つの異なる方法を試みました。あなたが2のべき乗の比率を必要とし、サブテクスチャがそれを遅くするので、テクスチャはうまくいきません。ミップマップや他のミップマップにgluを使用すると、速度が遅くなります。 glip APIを使用するのは、ミップマップだけが機能するため遅いです。これまでに試した最速の例は上記のものです。 – aquawicket
'glTexImage2D()'、そして '' glBegin(GL_QUADS) 'を使ってNPOTテクスチャにデータをアップロードする方法はありますか?(http://stackoverflow.com/a/4854802/176769)? – karlphillip