我意識到這個問題之前已被問過。我已經閱讀了答案並嘗試瞭解決方案,但它並沒有爲我解決。OpenCV cvLoadImage不接受字符*的文件名,但接受argv [1]
我在Ubuntu 10.10(32位)和Eclipse C IDE中使用OpenCV 2.1。
我的問題:
如果我從文件中讀取文本行,並將其存儲在一個char *變量,並通過這cvLoadImage,我什麼也沒得到。我從文件讀取的文本行是一個完全定義的文件路徑到某個圖像。
下面的代碼:
FILE *f = fopen("./input.txt","r");
char img1[50];
fgets(img1,50,f);
char* img3 = strtok(img1,"\n");
IplImage* frame = cvLoadImage(img3);
的結果是,框架現在是00000000,也沒有圖片
但
如果我通過相同的文字作爲參數傳遞給可執行文件,我可以將argv [1]存儲到char *並將其傳遞給cvLoadImage(),並按照預期讀取圖像。
下面的代碼:
char* img3 = argv[1];
IplImage* frame = cvLoadImage(img3);
我不知道這樣做的原因是什麼。 :■
作爲參數,並在文件傳遞的字符串恰好是:(包括引號) "/home/atharva/Documents/FYP/1a.jpg"
感謝
也想問另外一個問題:有沒有更好的方法來從文本文件中讀取沒有換行符或者確定長度然後存儲在變量中的行?謝謝 – AtharvaI 2011-02-10 22:56:39