简单的OpenCV程序崩溃

时间:2015-03-17 00:51:54

标签: c++ qt opencv

我目前遇到了问题。我按照本书“OpenCV 2计算机视觉应用程序编程手册”中的说明,使用Qt(5.4),Utntu 14.04中的QtCreator在OpenCV(2.4.10-1)中创建一个简单的图像显示程序。

代码如下:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

int main() {
    // read an image
    cv::Mat image = cv::imread("${PATH_TO_HOME}/Pictures/bottle_label.jpg");

    if ( image.data == NULL )    {
        std::cout << "no data loaded" << std::endl;
        return -1;
    }
    else {
        // create image window named "My image"
        cv::namedWindow("My Image", 1);
        // show the image on window
        std::cout << "Image loaded" << std::endl;
        cv::imshow("My Image", image);
        // wait key for 5000 ms
        cv::waitKey(5000);

        return 0;
    } }

.pro文件中的内容是

# Standard .pro content for qt console application #
INCLUDEPATH += /usr/local/include/

LIBS += -L/usr/local/lib \
        -lopencv_core  -lopencv_highgui -lopencv_imgproc -lopencv_features2d -lopencv_calib3d

代码编译,但是当我运行它时,程序立即崩溃。调试器指向第17行发生的SIGSEGV:cv :: namedWindow(“我的图像”,1)我不知道该怎么做。我有其他程序在同一台计算机上使用qt和opencv库但使用cmake(qt4宏)来构建它们并运行正常。 我还使用CMake和CMakeList.txt文件中的新qt5宏编写了另一个类似的测试程序。 该程序有一个带有两个按钮的MainWindow:第一个打开从FileOpenDialog中选择的Image,第二个打开图像。应使用cv :: imshow()函数显示两个图像。程序再次编译,当我运行它时它会立即崩溃。调试器不指向代码中的特定行。 控制台中的输出是:

*** Error in `${PATH_TO_EXEC_FILE}/myGUIApp': realloc(): invalid pointer: 0x00007ffff6d840e0 ***

使用上面提到的代码提供相同的控制台输出。有人可以指出问题所在吗?

提前谢谢

0 个答案:

没有答案