3

다음 코드는 OpenCV의 카메라 보정 프로그램의 일부입니다. 나는이 프로그램을 실행할 때 오류가 발생합니다 : 그것은 말한다구성 파일은 어디에 배치해야합니까?

나는 c:/Nn/default.xml에 구성 파일을 배치하지만 난 여전히

할 수있는이 오류가

구성 파일을 열 수 없습니다 코드의 잘못된 점을 알려주십시오. 파일을 잘못된 경로에 배치 했습니까?

int main(int argc, char* argv[]) 
{ 
help(); 
Settings s; 
const string inputSettingsFile = argc > 1 ? argv[1] : "c:/Nn/default.xml"; 
FileStorage fs(inputSettingsFile, FileStorage::READ); // Read the settings 
if (!fs.isOpened()) 
{ 
    cout << "Could not open the configuration file: \"" << inputSettingsFile << "\"" <<   endl; 
    return -1; 
} 
fs["Settings"] >> s; 
fs.release();           // close Settings file 

if (!s.goodInput) 
{ 
    cout << "Invalid input detected. Application stopping. " << endl; 
    return -1; 
} 

vector<vector<Point2f> > imagePoints; 
Mat cameraMatrix, distCoeffs; 
Size imageSize; 
int mode = s.inputType == Settings::IMAGE_LIST ? CAPTURING : DETECTION; 
clock_t prevTimestamp = 0; 
const Scalar RED(0,0,255), GREEN(0,255,0); 
const char ESC_KEY = 27; 

답변

-1

표준 해결책이 없습니다. 먼저 구성 파일에는 두 가지 유형이 있습니다. 즉 사용자가 프로그램을 구성하기 위해 사용자가 제공 한 것 (색상 등)과 을 내부적으로 사용하여 재 컴파일 및 재전송을 피할 수있는 두 가지 유형이 있습니다 바이너리 언제든지 작은 외부 요인이 변경됩니다. 첫 번째 파일은 유닉스에서는 인데 은 .으로 시작하는 단일 파일 또는 디렉토리에있다. Windows에서는 보통 아래에 있다고 생각합니다 c:\Documents and Settings\username\ApplicationData\appliname. 내부 구성 데이터의 경우 Unix에서 사용자가 루트를 지정하는 환경 변수를 설정하는 일반 규칙입니다. 실행 파일은 bin 디렉토리에 있으며 구성 데이터는 etc 디렉토리에 있습니다. 유닉스에서는 이로드 된 위치를 알 수 없습니다. Windows에서는 구성 데이터가 실행 파일과 동일한 디렉토리에 저장되고 프로그램은 GetModuleFileName을 사용하여이 파일을 찾습니다.

-1

(Visual Studio 2010을 사용한다고 가정) 링커 입력 섹션에 올바른 .lib 파일을 지정했는지 확인하십시오. 디버그 모드 용 ---- d.lib 파일 사용 및 릴리스 모드 용 ----. lib 파일 사용. 나는 이것을 해결하는 방법과 동일한 문제를 안고 있었다.

1

Ujjwal에 동의합니다. \ opencv \ build \ x86 \ vc10 \ lib 폴더의 링커에 * .lib와 * d.lib 파일이 모두 포함되어 있기 때문에 동일한 문제가 발생했습니다.

VS2010에서 디버그 모드로 컴파일하는 경우 링커에서 'opencv \ build \ x86 \ vc10 \ lib'아래에있는 d로 끝나는 파일 만 포함하면 문제가 해결됩니다. 릴리스 모드로 컴파일하는 경우 d로 끝나지 않는 .lib 파일 만 포함하십시오.

또한 'windoze'를 사용하고 있으므로 입력 파일을 "c : /Nn/default.xml"에서 "c : \\ Nn \\ default.xml"로 변경하는 것이 좋습니다.

0

나도 같은 problem.But에 직면 한 나는 그것을 시도 줄 F:\default.xml

에 의해 작업을 얻었다.