zoukankan      html  css  js  c++  java
  • 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 2013projectopencv_testdab.jpg

    我发现路径中有空格,所以我换了一个路径:G:360downloadsdab.jpg  结果成功了。注意如果有多个参数只需在命令参数中空格隔开即可。

    2)打开cmd,找到并进入test.exe的路径后,按这样的格式(路径名 参数)写,以我的为例:  E:visual studio 2013projectSIFT_lps extDebug>text.exe G:360downloadsdab.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]    " "(空字符串)

  • 相关阅读:
    修改文件小练习
    登录、注册、删除小练习
    自动生成用户名和密码
    自动生成密码文件
    监控日志被攻击情况-小练习
    随机函数_手机自动生成小练习
    as与c++的反射机制对比
    as中的陷阱
    关于as中的事件与回调函数
    身份证号码验证
  • 原文地址:https://www.cnblogs.com/king-lps/p/7745404.html
Copyright © 2011-2022 走看看