使用OpenGL在OpenCV中绘制
Drawing in OpenCV with OpenGL
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);
这是一个非常有用的功能。但是,它没有记录在联机文档中。例如,对于namedWindow
,文档中未列出标志WINDOW_OPENGL
。在哪里可以找到OpenCV的OpenGL相关功能的文档?
2.4.5的文档不是很完整。我认为没有比你在上面看到的更多的文档了http://docs.opencv.org.
有较旧的文档,例如http://opencv.willowgarage.com/documentation/cpp/对于2.1,但我发现它没有您想要的标志的文档。
- OpenCV/OOpenGL互操作文档https://docs.opencv.org/4.x/d2/d3c/group__core__opengl.html
- Highgui/OpenGL文档https://docs.opencv.org/4.x/df/d24/group__highgui__opengl.html
特别是第二个链接为您提供了两个简单的渲染选项。
- 带有
Texture2D
对象的imshow
setOpenGlDrawCallback()
(https://docs.opencv.org/4.x/df/d24/group__highgui__opengl.html#gaf80dcbc168a6ce40f6d1ad9d79a10bb8)它允许您使用OpenGL在CCD_ 8的顶部绘制
函数
cv::imshow(const & string, cv::InputArray)
本机不支持gpu矩阵,但通过强制转换支持gpu矩阵。
即在其输入上支持CCD_ 9的任何东西也应该支持cv::gpu::GpuMat
。我认为这意味着当你调用函数时,它会自动将矩阵下载到cv::Mat
并从那里开始,即你的imshow
函数调用不是直接绘制gpu->gpu,而是去gpu->cpu->gpu。
相关文章:
- 如何使用 opencv 绘制绿色矩形?
- Opencv,在图像中的对象周围绘制一个框
- OPENCV C .在for循环中在不同的图像像素上绘制一个圆圈(应在每个循环运行时将图像打开)
- OPENCV-快速 简介:如何使用drawmatchesflags :: draw_rich_keypoints绘制关键
- 如何在Opencv中绘制匹配项
- OpenCV c++ 断言失败调用绘制轮廓
- 在OpenCV中绘制带有梯度颜色的线
- 在框架上使用 OpenCV 绘制矩形
- 如何在OpenCV中绘制线路
- 绘制凸度缺陷C OPENCV
- 如何在opencv中使用matlab c ++库绘制点
- 使用OpenCV教程中的任何一个进行人脸检测是否有任何函数可以计算绘制在人脸上的矩形的大小
- 从图像中裁剪椭圆形状,而不是在OpenCV中在内部绘制
- 使用 OpenCV C++绘制最大轮廓的凸包
- 使用Opencv/c++在Stream中的两点之间绘制aline
- 绘制opencv中多个移动对象的轨迹
- 如何在OpenFrameworks/OpenCV中使用HSV颜色绘制正方形
- OpenCV - 仅在绘制单应性时打印对象名称
- 使用 OpenCV 和 C++ 在图像中绘制投资回报率
- OpenCV 3.1 绘制轮廓 '(-215) npoints > 0'