2014-02-16 4 views
0

OpenCV v 2.4.8을 사용하여 Visual Studio 2013에서 프로그래밍 중입니다. 여기OpenCV findContours가 발생하면 디버그 어설 션이 발생합니다.

#define _CRT_SECURE_NO_WARNINGS 

#include <cv.h> 
#include <highgui.h> 

int main(int argc, char* argv[]) 
{ 
    cv::Mat image = cv::imread(argv[1], 0); 
    image = image > 100; 
    std::vector<std::vector<cv::Point> > contours; 
    cv::findContours(image, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); 
    return 0; 
} 

모든 릴리스 모드에서 좋아 내 코드이며,이 디버그 모드에서 정상 작동하지 않는 이유를 이해할 수 없다. 디버그 어설 션이 실패했습니다. return 0;

(식 : _pFirstBlock == pHead).

등고선에 문제가 있다고 생각합니다.

많은 도움을 주셔서 감사합니다.

+0

'cv :: imshow ("img", image);''return 0; 앞에'를 추가하면 디버그가 실패하지 않습니다. – skap

+0

Visual Studio 2012에서 모든 것이 정상입니다. – skap

답변

0

속성> C++> 코드 생성> 런타임 라이브러리 :
MSVC 런타임 라이브러리가 다중 스레드 디버그 DLL (/ MDd)로 설정되어 있으면 문제가 없습니다 (정상적으로 작동 함).

MSVC 런타임 라이브러리가 다중 스레드 디버그 (/ MTd)로 설정된 경우이 오류가 발생하며 다음 지침에 따라 수정할 수 있습니다.

+0

/MDd를 사용하고 있지만 그런 문제가 있습니다./MTd를 설정하면 컴파일되지 않습니다. @Surinder, 어떤 Visual Studio 버전을 사용합니까? – skap

+0

Visual Studio 2012를 사용합니다. –

+0

Visual Studio 2012에서 모든 것이 정상입니다. 힙 오류는 Visual Studio 2013에서만 발생합니다. – skap

관련 문제