Domanda

#include "cv.h"
#include "highgui.h"
#include <stdio.h>


int main(int argc, char* argv[]){
    cvNamedWindow("Window1", CV_WINDOW_AUTOSIZE);
    IplImage* image = 0;
    ->->image = cvLoadImage(argv[1]);<-<-
    if(!image) printf("Unable to load image!");
    cvShowImage("Window1", image);
    char c = cvWaitKey(0);
    cvReleaseImage(&image);
    cvDestroyWindow("Window1");
    return 0;
}

Se sostituisco la riga indicata con cvLoadImage (" 247.png ") ottengo una finestra vuota e l'immagine rimane uguale a zero

Se corro l'exe e gli do 247.png come argomento, è solo dandy. Se inserisco il "247.png" nel codice e compilarlo ed eseguirlo Visual Studio 2008, non riesce. Se compilo ed eseguo dal prompt dei comandi, funziona.

Perché questo? Sono un po 'stanco di andare avanti senza scendere.

È stato utile?

Soluzione

In Project- > Properties- > Configuration Properties- > Debugging c'è un campo " Working Directory " ;. Impostalo sulla directory in cui vuoi eseguire e che dovrebbe risolvere il problema.

Altri suggerimenti

Sei sicuro " 247.png " è nella directory di lavoro corrente quando hai il nome hardcoded?

Esegui il programma con qualcosa come Process Monitor per vedere cosa il file viene realmente aperto (o quali errori di I / O potrebbero esserci).

Dopo la modifica per aggiungere ulteriori informazioni alla domanda (il problema si verifica quando eseguito da VS2008) questo è quasi sicuramente il tuo problema. La directory corrente in cui VS avvia il programma non è la directory che ha " 247.png " file.

Puoi controllare per vedere qual è il tuo cwd ?

Puoi #include < direct.h > e utilizzare la funzione _getcwd per vedere di cosa si tratta. Questo probabilmente ti indicherà il colpevole.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top