findContours在Visual Studio中崩溃

时间:2016-05-05 11:50:02

标签: c++ opencv visual-studio-2012

我在ubuntu中使用以下代码:

    img = imread("E:/object_recognition_c++/build/saved images/webcam_capture_2.jpg", CV_LOAD_IMAGE_COLOR);   // Read the file, comment if use camera
    Mat img_orginal = img;
    Mat src_gray, threshold_output;
    vector<vector<Point> > contours;

    cvtColor(img, src_gray, CV_BGR2GRAY);
    blur(src_gray, src_gray, Size(3, 3));
    int thresh = 85;
    threshold(src_gray, threshold_output, thresh, 255, THRESH_BINARY);  /// Detect edges using Threshold
    imshow("threshold_output", threshold_output);
    vector<Vec4i> hierarchy;
    findContours(threshold_output, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));

我在Visual Studio 2012上的Windows 7中尝试过但是在线: findContours(threshold_output, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));

它始终与代码崩溃:

  

线程0x1bf0已退出,代码为-1073740777(0xc0000417)。   线程0x18c8已退出,代码为-1073740777(0xc0000417)。   线程0x153c已退出,代码为-1073740777(0xc0000417)。   线程0x1990已退出,代码为-1073740777(0xc0000417)。   线程0x191c已退出,代码为-1073740777(0xc0000417)。   线程0x18d4已退出,代码为-1073740777(0xc0000417)。   线程0x197c已退出,代码为-1073740777(0xc0000417)。   线程0x1988已退出,代码为-1073740777(0xc0000417)。   线程0x1998已退出,代码为-1073740777(0xc0000417)。   线程0x1850已退出,代码为-1073740777(0xc0000417)。   线程0x19f0已退出,代码为-1073740777(0xc0000417)。   线程0x1994已退出,代码为-1073740777(0xc0000417)。   线程0x1980已退出,代码为-1073740777(0xc0000417)。   线程0x19f8已退出,代码为-1073740777(0xc0000417)。   程序'[7148] opencvtest.exe'已退出,代码为-1073740777(0xc0000417)。

有人可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

解决了!我想我使用的是opencv的错误版本。当我切换到2.4.10时,evrything正常。