2010-04-06 4 views
18

일부 기본 OpenCV 코드에 문제가 있습니다. (나는, .JPG를 .BMP 시도) 입력 이미지의 종류 NULL 행렬을 반환 imreadOpenCv에서 "cv :: imread"함수를 사용하여 이미지를 읽는 문제

cv::Mat src; 
src=imread("Calibration.bmp",0); 

if (src.empty()) 
    cout << "Cannot load image" << " "; 
else 
    cout << src.cols << " " << src.rows << " "; 

Unfortunatelly CV : : : 다음은 내 코드입니다. 잘못된 파일 이름을 사용하면 오류 메시지가 생성되므로 파일 이름이 정상적으로 작동하는 것 같습니다 (프로그램이 오류로 끝나지 않음). oldstyle "CvLoadImage"를 사용해 보았지만 같은 결과가 발생했습니다. 누구든지 문제를 해결하는 방법을 알고 있습니까?

답변

22

좋아, 문제가 해결되었습니다 ... OpenCV 라이브러리를 릴리스하고 디버깅 할 때 문제가 발생합니다. 프로젝트 속성에서 경로와 libs 이름을 변경했으며 "cv :: imread"는 정상적으로 작동합니다.

+9

OpenCV \ lib 디렉토리에 두 가지 유형의 .lib 파일 (예 : cv210.lib 및 cv210d.lib)을 찾아야합니다. 솔루션을 디버그 모드로 빌드하는 경우 프로젝트 속성에서 cv210d.lib에 링크해야합니다. 릴리스 모드에서 솔루션을 빌드하는 경우 cv210.lib에 링크해야합니다. 같은 것은 OpenCV/bin 디렉토리에서 dll 파일에 해당합니다. 잠시 응답하지 않으시면 도움이되고 죄송합니다./ – Marcin

+1

사실이지만 왜 이런 일이 발생합니까? 라이브러리를 섞어도 다른 기능이 완벽하게 작동하기 때문입니다. 왜이 기능? http://stackoverflow.com/q/9125817/744859 –

+1

많은 두통에서 나를 구해 줬습니다. 감사. – Aliostad

0

ARGB 비트 맵 이미지 (색상으로로드하려고 시도 함)를로드하려고 할 때이 동작이 발생했습니다. 비트 맵을 RGB (24bpp)로 변환하면 문제가 해결됩니다.

+0

코드에 관해 자세히 설명해 주시겠습니까? – Maham

관련 문제