OpenCV C++代码在终端中运行良好,但在从Ubuntu 12.04运行时出错



我正在尝试在Ubuntu 12.04 LTS上的Eclipse IDE中运行C++OpenCV程序。当我使用终端时,它们运行良好,如图所示-https://help.ubuntu.com/community/OpenCV.

但是当我在Eclipse中构建相同的代码时,我会得到以下错误

错误描述-

opengl支持可用OpenCV错误:在imshow,文件/home/akash/OpenCV/OpenCV-2.4.7/modules/higiguid/src/window.cpp,第269行中断言失败(size.widh>0;&size.height>0)在引发"cv::Exception"的实例后调用了terminatewhat():/home/akash/OpenCV/OpenCV-2.4.7/modules/highgui/src/window.cpp:269:错误:(-215)size.width>0&函数imshow 中的size.height>0


我的代码是

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img=imread("image.jpg");
namedWindow("win",WINDOW_AUTOSIZE);
imshow("win",img);
waitKey(0);
return 1;
}

我已经处理了以下内容-

  1. 将image.jpg保存在src和项目的所有其他文件夹中
  2. 仔细检查/usr/local/lib中的库名称
  3. 仅为OpenCV头文件添加了一个包含路径

我似乎仍然无法运行它。

请帮忙。

我仍然认为您的问题来自于程序找不到image.jpg文件(即使您已经采取了许多步骤来确保它找到了)。执行应用程序的工作目录通常与eclipse中的源文件夹或二进制文件夹的工作目录不同(实际上可以在项目设置中手动设置)。

为了快速验证这一假设,您可以将image.jpg的绝对路径传递给imread()。如果这解决了问题,您只需要在eclipse中正确配置工作目录。

g++ filename.cpp -o outputfile-name pkg-config --cflags --libs opencv

例如:

编译:-

thinkpadt61@thinkpadt61-ThinkPad-T61:~/Kannathasan$ g++ simple.cpp -o sample pkg-config --cflags --libs opencv

运行:

thinkpadt61@thinkpadt61-ThinkPad-T61: ./sample

就是这样!。。。享受

最新更新