2013-09-07 4 views
-1
int main (int argc, char** argv) 
{ 
    cout << "OpenCV Automatic Number Plate Recognition\n"; 
    char* filename; 
    Mat input_image; 
    //Check if user specify image to process 
    if(argc >= 2) 
    { 
     filename= argv[1]; 
     //load image in gray level 
     input_image=imread(filename,1); 
    }else{ 
     printf("Use:\n\t%s image\n",argv[0]); 
     return 0; 
    }   

    string filename_whithoutExt=getFilename(filename); 

이 코드, 오류없이 코드를 실행하지만, 항상 여기 반환 0프로그램 항상 변수는 argv에 0 반환 [0]

 printf("Use:\n\t%s image\n",argv[0]); 
     return 0; 

의 공정에있다 이미지를 못하고 왜

편집 내가 그것을 줄 처리 할 수있는 내 폴더 테스트를 제공하는 경우 다음과 같은

런타임 오류 :>.\test 테스트 폴더 이미지

를 포함 -은 -> 디버깅 -> 명령 행 인수

enter image description here

그것은 argv와 <이 실행 그것이 다른 조건, 난 고토 구성 설정을 실행하는 것이 의미

새로운 C로 ++ 및 VS

+2

프로그램을 어떻게 실행합니까? – NPE

+0

어떻게이 프로그램을 실행합니까? – 4pie0

+0

Visual Studio를 통해 f5를 누름 – Rocket

답변

3

는 어떻게이 프로그램을 실행합니까?

프로그램이 인수없이 또는 단일 인수로 호출 될 경우 예 :

./myprogram 

또는 는 ./myprogram img1

그것은 첫 번째 조건을 입력합니다 여기

printf("Use:\n\t%s image\n",argv[0]); 

종료됩니다

: 즉 2 개 이상의 인수가있는 경우에만

./myprogram img1 img2

프로젝트에서 (IDE에서) 호출 할 인수를 지정하거나 터미널/콘솔에서 실행할 수 있습니다.


Passing command line arguments in Visual Studio 2010?

당신은 코멘트 말했다 :

내가 폴더 테스트 또는 프로젝트 에서 이미지를 가지고 입력으로 데리고 기대하고

하지만, 그것은 당신이 실제로하는 일과 모순이됩니다. 파일을 처리하려는 경우 프로그램 호출 매개 변수를 확인하지 않고도 파일을 처리 할 수 ​​있습니다 (필요한 이유와 달성하려는 것이 명확하지 않습니다). 순간 에서

는 img1로이 파일 중 하나의 올바른 이름 인으로 명령 줄 ./myprogram img1 img2에서보십시오. 그러면 imread()을 실행하려고 시도합니다. 은 또한 IDE에을 img1, IMG2 를 지정, 그것을 어떻게 당신은 제공된 링크에서 찾을 수 있습니다.

+0

구성 속성에 폴더 이름을 써야합니까? > 디버깅? – Rocket

+0

이미지가있는 곳은 어디입니까? 디스크의 일부 폴더에 있습니까? – 4pie0

+1

@Ahmad - 잠시 질문을 멈추고 대신에 다른 사람들이 당신에게 주었던 질문에 대답해야합니다 ... 특히 당신이 어떤 명령 행을 전달했는지 (또는 최소한 지나치기를 원하는) 프로그램. 이와 같이 사람들이 당신의 기대를 이해하도록 돕는다면, 그들은 당신에게 유용한 반응을 줄 수 있습니다. – mah