【发布时间】:2014-06-07 15:25:12
【问题描述】:
我在Qt下有问题,其实我想在它(ubuntu)下使用opencv,出现crash。 如果我在终端下编译:
g++ pkg-config --cflags opencvexample.cc -o output_file pkg-config --libs opencv
一切都好,但是在 QT 下有一个崩溃的问题,我刚刚看到这个消息错误:
正在启动/home/quentin/build-test_opencv-Desktop_Qt_5_2_1_GCC_64bit-Release/test_opencv... 程序意外结束。 /home/quentin/build-test_opencv-Desktop_Qt_5_2_1_GCC_64bit-Release/test_opencv 崩溃
这是我的 .pro :
QT += core
QT -= gui
TARGET = test_opencv
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
CONFIG += link_pkgconfig
PKGCONFIG += opencv
SOURCES += main.cpp
INCLUDEPATH += -I /usr/local/include/opencv
LIBS += `pkg-config opencv --libs`
这是我的 main.cpp :
#include <QCoreApplication>
#include <iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
int main(int argc, char *argv[])
{
IplImage* img = cvLoadImage( "lena.png" );
cout << "Image WIDTH = " << img->width << endl;
cout << "Image HEIGHT = " << img->height << endl;
cvReleaseImage( &img );
return 0;
}
【问题讨论】:
-
添加到您的代码中,在 cvLoadImage("lena.png"):
assert(img != NULL)之后,您需要包含<cassert>。 -
因为你是新手,-请使用 opencv 的 c++ api,避免使用 IplImages、cv* 函数等。只是不要开始学习已弃用的 api。
-
请注意,`LIBS +=
pkg-config opencv --libs` 是不必要的,因为您在执行CONFIG += link_pkgconfig PKGCONFIG += opencv时已经链接到 opencv