我正在尝试运行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)提供以下消息:“在basic opengl program.exe中未处理的异常0x00007FFA927788:微软C++异常:cv::内存位置0x000000B51399F360的异常。”
在调试器控制台中,我收到以下错误消息:"OpenCV(3.4.3) Error: No OpenGL support (该库是在没有OpenGL支持的情况下编译的) In `OpenGL-namespace‘::support_no_ogl,file c:\build\3_4_winpack-build-win64-vc15\opencv\modules\core\src\opengl.cpp,第60行“
我在Windows10上安装了opencv2 3.4.3的其他工作副本。谢谢。
编辑: opencv是在启用opengl的情况下构建的。我的build文件夹中的'CMakeCache.txt‘显示以下行://Include OpenGL support WITH_OPENGL:BOOL=ON
发布于 2019-03-10 00:03:09
我最终修复了它,安装了旧版本的opencv (4.3.4),同时安装了Qt4和Qt5,使用gui Cmake验证安装是否正确,是否包含了opengl,并仔细地将所有内容链接起来,然后进行测试。
https://stackoverflow.com/questions/55065364
复制相似问题