[OpenCV] imread 읽기 데이터가 비어 있음

1712 단어 OpenCV
OpenCV2.3.1 OpenCV2.4.4 Iplimage와 cvLoadImage 대신 Mat와 imread를 사용하기 시작했습니다. 작은 문제가 생겼습니다. imread가 데이터를 읽는 것은 항상 비어 있습니다.
프로그램은 다음과 같습니다.
4
Mat image = imread ("lena.jpg");
imshow("lena",image);
cvWaitKey(0);
처음에는 경로의 문제인 줄 알았는데 우연히 Iplimage로 이미지를 가져와 그림을 잘 읽을 수 있다.
4
IplImage *src;
src = cvLoadImage("lena.jpg"); //   lena.jpg lena.cpp           
cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);
cvShowImage("lena",src);
cvWaitKey(0);
cvDestroyWindow("lena");
cvReleaseImage(&src);

인터넷 검색설을 검색한 결과 드디어 원인을 발견했습니다(원래 링크는 이미 분실되었으니 스스로 검색할 수 있습니다). 원래는 OpenCV 설정에 문제가 생겼습니다!
그렇습니다. 이전에 설정할 때 Debug이든Release의 추가 의존항이든 모든lib을 추가했습니다. 즉, Debug와Release가 구분되지 않은 것입니다.그러나 실제로 OpenCv는 파일 이름 끝에 d가 있는 것은 Debug 라이브러리 함수이고 d가 없는 것은 Release 라이브러리 함수이다.라이브러리 함수를 분리하여 추가 종속성에 추가하기만 하면 됩니다.
Debug 라이브러리:
opencv_calib3d244d.lib opencv_contrib244d.lib opencv_core244d.lib opencv_features2d244d.lib opencv_flann244d.lib opencv_gpu244d.lib opencv_highgui244d.lib opencv_imgproc244d.lib opencv_legacy244d.lib opencv_ml244d.lib opencv_nonfree244d.lib opencv_objdetect244d.lib opencv_photo244d.lib opencv_stitching244d.lib opencv_ts244d.lib opencv_video244d.lib opencv_videostab244d.lib
Release 라이브러리:
opencv_calib3d244.lib opencv_contrib244.lib opencv_core244.lib opencv_features2d244.lib opencv_flann244.lib opencv_gpu244.lib opencv_highgui244.lib opencv_imgproc244.lib opencv_legacy244.lib opencv_ml244.lib opencv_nonfree244.lib opencv_objdetect244.lib opencv_photo244.lib opencv_stitching244.lib opencv_ts244.lib opencv_video244.lib opencv_videostab244.lib
이렇게 수정한 후에 프로그램을 실행하면 정상적으로 그림을 읽을 수 있습니다!

좋은 웹페이지 즐겨찾기