使用OpenGL在OpenCV中绘图

时间:2013-07-05 20:55:41

标签: c++ opengl opencv

OpenCV库在使用GPU和OpenGL支持编译时,允许使用OpenGL显示图像。例如,video_reader.cpp(位于gpu示例中)使用OpenGL直接从cv::gpu::GpuMat呈现显示图形。

cv::gpu::GpuMat d_frame;
namedWindow("OpenGL", WINDOW_OPENGL);
cv::gpu::VideoReader_GPU d_reader(fname);
d_reader.dumpFormat(std::cout);
if (!d_reader.read(d_frame))
    break;
cv::imshow("GPU", d_frame);

这是一个非常有用的功能。但是,documentation on-line中没有记录。例如,对于namedWindow,文档中未列出标记WINDOW_OPENGL。我在哪里可以找到OpenCV相关功能的文档?

2 个答案:

答案 0 :(得分:1)

2.4.5的文档不是很完整。我认为没有比http://docs.opencv.org上看到的文档更多的文档了。

有较旧的文档,例如2.1的http://opencv.willowgarage.com/documentation/cpp/,但我没有找到它所需的标记文档。

答案 1 :(得分:0)

功能

cv::imshow(const & string, cv::InputArray)

本身不支持gpu矩阵,但通过强制转换支持GPU矩阵。

即。支持cv::Mat输入的任何内容也应支持cv::gpu::GpuMat。我认为这意味着当你调用该函数时,它会自动将矩阵下载到cv::Mat并从那里开始,即你的imshow函数调用不是直接绘制gpu-> gpu,而是去GPU-> CPU-> GPU