2013-07-11 3 views
1

VC2010에서 opencv를 사용하고 있으며 이에 대해 잘 알고 있습니다.OPENCV가 디버그 모드에서 이미지를 열 수 없습니다.

오늘 OPENCV 2.4.5를 설치했으며 opencv가 작동하는지 테스트하기 위해 이미지를 표시하려고했습니다.

이 코드는 이미지를 릴리스 모드로 표시하지만 컴파일러 모드를 디버그로 변경하면 opencv에서 이미지를 찾을 수없고 이미지 데이터에 null이 반환됩니다. 내가 릴리스 모드에서 코드가 잘 작동, 그래서 경로, 이미지 이름과 모든 좋은 것을 확신

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupport 
ed array type) in unknown function, file ..\..\..\src\opencv\modules\core\src\ar 
ray.cpp, line 2482 

하지만 난 몰라 :

#include <iostream> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
    int main() 
{ 
    cv::RNG rng; 
    cv::Mat image = cv::imread("1.jpg",-1); 
    cv::imshow("Image",image); 
    cv::waitKey(0); 
return 0; 
    } 

오류는 다음과 같이 표시됩니다 디버그 모드에서 작동하지 않는 이유는 무엇입니까?

나는 또한 절대 경로를 입력으로 주었고 작동하지도 않았다 !! 그러나 다시 절대 경로는 릴리즈 모드에서 작동했습니다!

내가 opencv의 32 비트 및 64 비트 라이브러리에서 내 프로젝트를 테스트했는데 문제가 변경되지 않았다는 점은 가치가 있습니다!

+0

opencv_calib3d245d.lib 예를 들어 당신이 가지고있는 OpenCV의 버전에 따라 올바른 lib 디렉토리 이름을 사용하고 있는지 확인, 당신이 필요합니다 이미지 파일을 디버그 버전의 디렉토리에 복사하십시오. 어느 쪽이든, 또는'imread'에 대한 절대 경로를 전달하십시오. – Aurelius

+0

@Aurelius 절대 경로를 테스트했지만 어느 쪽도 작동하지 않았습니다 ... – PsP

답변

1

opencv 라이브러리의 디버그 버전은 아마도 "jpg"이미지에 대한 지원없이 컴파일되었을 것입니다. 또한, this answer

당신이 릴리스 및 디버그 LIB의 OpenCV의의 당신이 링크 된 경우 라이브러리를 함께 사용하지 않았는지 확인하십시오. 디버그 라이브러리에는 끝에 d가 있습니다. 또한, 디버그 실행 파일이 해제 실행 파일에서 다른 위치에 내장되어있는 경우

+0

디버그 버전을 의미합니까? 왜냐하면 나는 릴리스 버전 – PsP

+0

예 디버그 버전과 아무런 문제가 없기 때문에 .. 내 대답을 편집 – Alexey

+0

그 디버그 및 릴리스 libs d에 차이가 있지만 내 잘못은 "C : \ opencv \ build \ x64 \ vc10 \ lib \ *. lib "에서"링커 "설정을 사용하면 VC2010이이 폴더에서 사용할 수있는 모든 라이브러리를 사용할 수 있습니다. 어쨌든 고마워. – PsP

관련 문제