argv[1] 路徑問題


在看《學習opencv》一書時遇到一個小問題:函數只是通過argv傳遞參數來讀取圖片並顯示,但是卻一直彈出畫布,沒有圖像。

如下:test.c

# include<stdio.h>
#include <opencv/cv.h>
#include <opencv/cxcore.h>
#include <opencv/highgui.h>


int
main(int argc, char **argv) { IplImage *img = cvLoadImage( argv[1],1); cvNamedWindow("Example", CV_WINDOW_AUTOSIZE); cvShowImage("Example", img); cvWaitKey(0); cvReleaseImage(&img); cvDestroyWindow("Example"); return 0; }

使用 argv[1]傳參的方法有兩種

1)點擊項目——某某屬性——調試——命令參數——寫入調用的圖片的地址,我的路徑是:E:\visual studio 2013\project\opencv_test\dab.jpg

我發現路徑中有空格,所以我換了一個路徑:G:\360downloads\dab.jpg  結果成功了。注意如果有多個參數只需在命令參數中空格隔開即可。

2)打開cmd,找到並進入test.exe的路徑后,按這樣的格式(路徑名 參數)寫,以我的為例:  E:\visual studio 2013\project\SIFT_lps\text\Debug>text.exe G:\360downloads\dab.jpg

注:

       cvLoadImage( filename, -1 ); 默認讀取圖像的原通道數

  cvLoadImage( filename, 0 ); 強制轉化讀取圖像為灰度圖

  cvLoadImage( filename, 1 ); 讀取彩色圖

 

補充:對於main函數原型: int main(int argc, char*argv[]),  形參argc和argv為main函數提供了命令行參數的機制。拿上文中的test.exe為例

         終端(win下)中執行 text.exe opt1 opt2 opt3  會導致main中出現如下的行參數值:

                                       argc  4       argv[0]    "test.exe"

                                                         argv[1]    "opt1"

                                                         argv[2]    "opt2"

                                                         argv[3]    "opt3"

                                                         argv[4]    " "(空字符串)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM