csdnyiqixuexiba 2015-11-25 13:10 采纳率: 33.3%
浏览 2374
已采纳

opencv图片读入方式的区别

最近开始学习opencv,用的vs2013版的,看到网上有很多图片读取的代码,常见的有Mat img=imread("C:/../1.jpg"),括号里放的是图片的路径,但是有的是写的Mat img=imread(argv[1],1),而且代码中从头到尾也没有读取图片的路径,请问这是怎么回事,

  • 写回答

3条回答 默认 最新

  • hefei_cyp 2015-11-25 13:32
    关注

    首先知道什么是带参数的主函数:
    一般情况下(许多教科书中都没有说明),我们在写程序的时候,往往忽略了主函数的参数,例如:
    int main()
    {

    return 0;
    }
    在命令行下,输入程序的名称就可以运行程序了。实际上,我们还可以通过输入程序名和相关的参数来为程序的运行提供更多的消息。参数紧跟在程序名后面,参数之间用空格分开。
    这些参数被称为:command-line arguments(命令行参数),也往往被称为程序的argument list(参数表)。例如,在Linux终端,用户可以输入ls –l显示目录下文件的详细信息。这个命令中,ls是程序名称,用户调用该程序,它有一个输入参数-l。
    main函数通过两个参数获取输入参数表信息,分别是argc和argv。第一个参数是一个整型的变量,它记录了用户输入的参数的个数。第二个参数argv是一个char型的指针数组,它的成员记录了指向各参数的指针。argv[0]是程序名,argv[1]是第一个参数。
    例如:(TC3.0编译环境,Windows XP)
    #include
    int main(int argv, char *argc[])
    {
    printf("/nthe name of the program is %s /n", argc[0]);
    printf(" the program has %d argument! /n", argv - 1);
    if(argv > 1)
    {
    int i;
    printf("the arguments are:/n");
    for(i=1; i<argv; i++)
    {
    printf("%s/t",argc[i]);
    }
    }
    return 0;
    }

    当用户在命令行下输入:mytest
    输出:
    the name of the program D:/WINYES/TCPP30E/OUTPUT/MYTEST.EXT
    the program has 0 argument!
    当用户在命令行下输入:mytest aa bb cc dd e
    输出:
    the name of the program D:/WINYES/TCPP30E/OUTPUT/MYTEST.EXT
    the program has 5 argument!
    The arguments are:
    aa bb cc dd e

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 lammps Gpu加速出错
  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号