在Qt下崩溃没有错误消息opencv

时间:2014-04-23 01:47:17

标签: c++ qt opencv terminal

我在Qt下遇到问题,其实我想在它下面使用opencv(ubuntu)并且发生了崩溃。 如果我在终端下编译:

g ++ pkg-config --cflags opencv example.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;


} 

2 个答案:

答案 0 :(得分:0)

很可能cvLoadImage失败并返回nullptr。你从不打扰检查。

答案 1 :(得分:0)

您使用的是哪个版本的openCV? berak的意思是在较新版本的openCV中不使用IplImage。使用Mat而不是IplImage。试试这段代码告诉我会发生什么:

#include <QCoreApplication>
#include <iostream>
#include <stdio.h>
#include <opencv2/core/core.hpp>
#include "opencv2/highgui/highgui.hpp"

int main(int argc, char *argv[])
{
    Mat* img = new cv::Mat(cv::imread("lena.png",CV_LOAD_IMAGE_COLOR)); 

    if(img == NULL){
        perror("Could not load image");
    }

    std::cout << "Image WIDTH  = " << img->cols << std::endl;
    std::cout << "Image HEIGHT  = " << img->rows << std::endl;
    img->release();
    return 0;
} 

这将在opencv 2.4.X中有效。还要确保您的图像与程序位于同一文件夹中。请告诉我任何错误。