我在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;
}
答案 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中有效。还要确保您的图像与程序位于同一文件夹中。请告诉我任何错误。