c++ - 是否可以在图形卡上渲染场景,然后将图像传输回系统内存

标签 c++ opencv opengl

我想知道是否可以:

获取存储在系统内存中的图像,例如 cv::Mat。

将其传输到显卡。

使用openGL/directX/3D Engine对显卡做一些处理 (我知道 OpenCV 具有某些算法的功能,但这不是我要找的)。例如渲染网格。

然后将数据传输回 cv::Mat。

我想知道一种独立于平台的好方法

最佳答案

OpenGL 有两个基本功能:

Take an image stored in system memory, for example cv::Mat.

Transfer it to the graphics card.

glTexImage…

Then transfer the data back to a cv::Mat.

glReadPixels

所有其余的,如 FBO、PBO 等,只是为了提高效率或允许从某些资源中回读,这些资源没有直接访问它们的方法。

关于c++ - 是否可以在图形卡上渲染场景,然后将图像传输回系统内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28667344/

相关文章:

c++ - OpenGL 实例渲染比 glBegin/glEnd 慢

c++ - c++ 中未初始化的 std::string 变量的值和大小

java - 是否可以通过 JMX 管理 C++ 应用程序?

opengl - 如何添加垂直高斯模糊

c++ - Opencv 视频帧不显示 Sobel 输出

opencv - haarCascades可用于获取对象大小吗?

c++ - GLEW 编译,但在运行时崩溃

c++ - 多集索引查找

c++ - 随机选择字典单词

opencv - 使用HAAR分类器进行人脸检测