2012-06-14 3 views
3

OpenCV를 처음 사용하고 cvLoadImage() 함수를 사용하여 이미지를로드하려고 할 때 문제가 발생했습니다.OpenCV cvLoadImage 함수가 명시 적 경로와 함께 작동하지 않습니다.

다음 코드는 (1) 작업 디렉터리 (주석 처리 된 코드 줄) 또는 (2) 데스크톱의 파일에 대한 명시 적 경로를 사용하여 "testImg.bmp"이미지를로드하려고 시도합니다. 두 개의 이미지 파일은 두 위치 (즉, 작업 경로가 데스크톱이 아님)에 위치한다는 것을 제외하면 완전히 동일합니다.

첫 번째 줄 (주석 처리 된 줄)을 사용하여 프로그램을 실행하면 이미지가로드되어 창에 표시됩니다. 그러나 프로그램을 서면으로 실행하면 (예 : 바탕 화면의 이미지에 대한 명시 적 경로 사용) 빈 창이 열리고 오류 메시지가 나타납니다 ("이미지를로드 할 수 없습니다"메시지).

명시 적 경로 행을 잘못했는지 알려주는 데 도움이되는 것은 이미지 파일을 작업 디렉토리로 옮기는 것이 일반적으로 실현 가능/바람직하지 않기 때문입니다.

#include "stdafx.h" 

#include "opencv/cv.h" 
#include "opencv/highgui.h" 

using namespace std; 

int main(int argc, CHAR* argv[]) 
{ 
    //IplImage* img = cvLoadImage("testImg.bmp"); 
    IplImage* img = cvLoadImage("C:\Users\Jeremy\Desktop\testImg.bmp"); 

    if(!img) 
     std::cerr<<"Unable to load image"<<endl; 

    cvNamedWindow("myfirstwindow"); 
    cvShowImage("myfirstwindow",img); 

    cvWaitKey(0); 
    cvReleaseImage(&img); 
    return 0; 
} 

답변

3

IT는 C 문자열에서 OpenCV의

"\"와는 아무 상관 없습니다 다음 문자는 이스케이프 코드 "\\" 또는 "/"

+0

감사합니다, 같은 간단한 실수 중 하나를 사용하는 것을 의미한다. 나는 더 겸손하지만, 작동 코드와 함께 걸어 :) – user1457356

관련 문제