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

标签 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;
}

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

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

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

在调试器控制台中,我收到以下错误消息:“OpenCV(3.4.3) 错误:`anonymous-namespace'::throw_no_ogl,文件 c:\build 中没有 OpenGL 支持(该库是在没有 OpenGL 支持的情况下编译的)\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

最佳答案

我最终修复了它,方法是获取旧版本的 opencv (4.3.4),同时安装 Qt4 和 Qt5,使用 gui Cmake 验证安装是否正确并且包含 opengl,然后仔细链接所有内容并进行测试之后。

关于c++ - 当 ogl::Arrays 的默认构造函数运行时,Opencv2 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55065364/

相关文章:

c++ - Visual Studio 对话框编辑器不使用方形尺寸

用于传递参数的 Java 与 C++

c# - 使用 P/Invoke 编码双参数

c# - 使用 emgu.cv 的阿尔法合成图像

java - Android 中 Canny 边缘检测器的快速自适应阈值

c++ - 单击按钮时将当前位置/订单保存在 QTabWidget 中 - 用户设置

java - 找不到 JNI.h header

python - AdaptiveThreshold 的 OpenCV 错误

c++ - 解析问题 - Opencv 与 Xcode

python - 使用scikit-image读取图像时出现以下错误 “AttributeError: ' PngImageFile'对象没有属性 '_PngImageFile__frame'”