gpt4 book ai didi

c++ - OpenCV:是否可以用它执行 openGL 像素着色?

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:52 26 4
gpt4 key购买 nike

如何在 openCV 图像结构之上执行 OpenGL 像素着色器?是否有用于 OpenCV 的任何库或插件?

最佳答案

我不会包括设置 OpenGL 上下文、执行实际渲染操作等。将此视为伪代码中的大纲,只是试图让您了解如何执行此操作(假设您想要重用OpenCV 中的输出:

首先您创建一个纹理(当然只需要完成一次),然后您将图像数据从 OpenCV 上传到创建的纹理(或更新它)。

glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, ...parameters based on your image, pointer to raw image data);

现在您的 OpenCV 图像位于 OpenGL 纹理中。稍后您只需渲染图像并检索像素数据。

glViewport(0,0,imagewidth,imageheight); // has to be done once
renderTexturedQuadWithShaders();
glReadPixels(..., &pointer); // read the raw image data again

这应该可行,但是不要忘记您必须使用正确的纹理格式才能不搞砸图像数据,并且您可能必须使用另一个缓冲区(现在我不能 100% 确定您是否可以将图像数据直接写入您的 OpenCV 图像)。

编辑:您可以渲染到屏幕或帧缓冲区对象,基本概念保持不变。只需确保渲染到正确的目标即可。

关于c++ - OpenCV:是否可以用它执行 openGL 像素着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com