运行ogl :: Arrays的默认构造函数时,Opencv2崩溃

时间:2019-03-08 14:35:01

标签: c++ opencv

我正在尝试运行opencv2提供的代码示例之一(“ opengl_interop.cpp”)。在代码中,以下几个对象的结构引发了错误。我已将代码简化为以下简单程序:

#include <opencv2/core/opengl.hpp>

struct DrawData {
    cv::ogl::Arrays arr;
    cv::ogl::Buffer indices;
    cv::ogl::Texture2D tex;
};


int main() {
    DrawData data;
    return 0;
}

调试器将“数组”的默认构造函数标识为罪魁祸首,并且在运行时将异常抛出到构造函数的主体中:

inline
cv::ogl::Arrays::Arrays() : size_(0)
{
}

编译器(Visual Studio 2015)提供以下消息: “在基本opengl program.exe中,未处理的异常在0x00007FFAFA927788处:Microsoft C ++异常:在存储位置0x000000B51399F360处出现cv :: Exception。”

在调试器控制台中,我收到以下错误消息:“ OpenCV(3.4.3)错误:`匿名命名空间':: throw_no_ogl中不支持OpenGL(该库在没有OpenGL支持的情况下进行编译,文件c:\ build \ 3_4_winpack-build-win64-vc15 \ opencv \ modules \ core \ src \ opengl.cpp,第60行“

我在Windows 10上安装了opencv2 3.4.3的其他工作副本。谢谢。
编辑:opencv是启用了opengl构建的。我的构建文件夹中的“ CMakeCache.txt”显示以下行://Include OpenGL support WITH_OPENGL:BOOL=ON

1 个答案:

答案 0 :(得分:0)

最后我得到了较旧版本的opencv(4.3.4),同时安装了Qt4和Qt5,并使用gui Cmake验证了安装是否正确并且包括了opengl,并仔细地链接了所有内容并进行了测试,以解决此问题。之后。