首页 > 解决方案 > 在 C/C++ 中使用 OpenGL 在 OpenCV 中显示图像

问题描述

cv::Mat我尝试使用在 OpenGL 窗口(使用 创建)中cv::namedWindow显示图像(存储在 中) cv::imshow,如下所示:

cv::Mat cvImage = ...;
cv::namedWindow("test", cv::WINDOW_OPENGL);
cv::imshow("test", cvImage);

问题是,程序崩溃并出现以下错误:

OpenCV(4.4.0-dev) Error: OpenGL API call (Can't load OpenGL extension [glBindBuffer]) in IntGetProcAddress

这是为什么?cv::imshow应该在使用 OpenGL 时使用acv::ogl::Texture2D而不是?cv::Mat我尝试了以下方法,它导致了同样的错误:

cv::ogl::Texture2D texture = cv::ogl::Texture2D(
            height,
            width,
            cv::ogl::Texture2D::Format::RGB,
            true
            );
texture.copyFrom(cvImage, true);
cv::imshow("test", texture);

可能是什么问题呢?我也不想导入 OpenGL 标头,我认为标志cv::WINDOW_OPENGL足以让我继续前进。谢谢。

标签: c++copencvopengl

解决方案


推荐阅读