使用OpenCV执行图像处理时,我的程序崩溃

时间:2014-03-22 19:53:31

标签: c++ opencv

我在学校项目中使用OpenCV。

当我使用OpenCV的“基础”时,我的所有程序都能正常工作,但是当我必须进行“大”图像处理时 - 例如使用findContours()或HoughLines或HoughLinesP,我的程序崩溃......

你知道为什么吗?

编辑:代码:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

#include <iostream>

using namespace cv;
using namespace std;

int main() {
    cout << "lol";
    IplImage* image = cvLoadImage("frame3.jpg", 0);
    cout << "bas";

    cvWaitKey(3000);
    Mat src(image);

    Mat color_dst;
    cout << "la3";

    imshow("source", src);

    cout << "la4";
    waitKey(3000);
    cout << "la5";
    vector<Vec4i> lines;

    HoughLinesP(src, lines, 1, CV_PI / 180, 80, 30, 10);

    cout << "la6";
    for (size_t i = 0; i < lines.size(); i++) {
        line(color_dst, Point(lines[i][0], lines[i][1]),
            Point(lines[i][2], lines[i][3]), Scalar(0, 0, 255), 3, 8);
    }

    imshow("io", color_dst);
    cvWaitKey(5000);
}

非常感谢:)

1 个答案:

答案 0 :(得分:1)

我认为它会崩溃,因为你建议行例程为未构造的图像画一条线。

Mat color_dest dows不会创建图像缓冲区。使用具有图像大小和类型的构造函数之一。