我正在尝试运行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
答案 0 :(得分:0)
最后我得到了较旧版本的opencv(4.3.4),同时安装了Qt4和Qt5,并使用gui Cmake验证了安装是否正确并且包括了opengl,并仔细地链接了所有内容并进行了测试,以解决此问题。之后。