내 개발 환경은 Mingw32이 OpenCV의를 사용하여 윤곽을 감지하는 (이 같은 코드가 리눅스에서 잘 작동)큰 이미지의 경우 OpenCV CvSeq 재귀 요소 액세스가 실패합니까?
내가 cvFindContours을 (사용) 윈도우 7에 CMake 비트입니다.
난 다음 레벨로 윤곽을 액세스하기 위해 생성 CvSeq을 traveser하는 귀납법을 사용
void helperParseCurves(CvSeq* contour, int level) {
//Travel same level contours
if(contour->h_next != NULL) {
helperParseCurves(contour->h_next, level);
}
if(contour->v_next != NULL) {
helperParseCurves(contour->v_next, level+1);
}
//Travel child levels
for(int i=0; i<contour->total; i++){
//Try to access Point data -- Crash here when threshold level 114 ?
//Works when uncommented
CvPoint* p = CV_GET_SEQ_ELEM(CvPoint, contour, i);
}
}
그러나 행에서 응용 프로그램이 충돌 CvPoint * p = CV_GET_SEQ_ELEM (CvPoint, 컨투어, I); 이것은 특정 대형 이미지에 발생하며 Linux에서 정상적으로 작동합니다.
내가 샘플 이미지를 사용하여 코드를 실행
http://dl.dropbox.com/u/17399055/opencv-test.zip
* 다운로드의 시나리오를 설명하는 샘플 프로그램을 업로드하고
* CMake
를 사용하여 컴파일 한 - "OCvTest.exe 테스트 - img.tif "* 슬라이더 값을 114로 변경하면 응용 프로그램이 충돌합니다.
* 줄 # 27이 주석 처리 된 경우 정상적으로 작동합니다.
이것에 대한 도움말?
OpenCV 버그 일 수 있습니까?
미리 감사드립니다.