OPENCV_main_argc&agrv 用法



// test 通过argc,argv进行图片读取
/*agrc (Argument count) 命令行参数个数 argv (argument value)命令行参数指针或者文件地址

这两个参数在opencv 到底是干什么用的呢 :argc 读取的那一个图片 比如第一个图像,第二个图像 就是argc=1 ,argc=2
注意第0个就是程序的执行文件 (.exe) 
执行文件在C:\Users\User\Documents\Visual Studio 2008\Projects\test\Debug中的test.exe
agrv 是图像的路径 手工输入地址一次 这样就可以每次不用写入输入图像路径 比如要读取
argc=1的图像 就要在[项目] -> 属性页 -> 配置属性 -> 调试->命令参数 添加图片路径
C:\\Users\\User\\Pictures\\opencvfile\\公路1.jpg复制过去,如果读取其他图片要加空格然后 C:\\Users\\User\\Pictures\\opencvfile\\公路2.jpg
*/

#include "stdafx.h" //预编译头文件
#include <stdio.h>//标准输入输出如果需要用scanf 必须包含 ,此文没有用scanf 故此可以不写
#include "cv.h"
#include "highgui.h"
//#include <stdlib.h> //如果闪退加入

int main(int argc, char* argv[]) //agrc 命令行参数,char **argv=char*argv[]格式一样输哪个都可以
{
 //显示argc ,argv
 int i;
 for (i=0; i < argc; i++)//当i小于argc 即参数个数时打印 afgc ,agrv
  printf("Argument %d is %s.\n", i, argv[i]); //注意此处for循环只针对这个语句 因为argv是char型所有需要用%s

 //判断argc参数是否正确
 if (argc != 3) //参数个数必须为3如果不是 参数输入错误  return-1 :一般正常关闭时用return 0 异常关闭用 0
 {
  printf("argc error \n");
  return -1;  //谁调用就返回给谁
 }

 IplImage *img1 = cvLoadImage(argv[1]);//读取图像argv【1】第一个图片的地址 如下,将其复制到  [项目] -> 属性 -> 配置属性 -> 调试->命令参数
 //IplImage *img1 = cvLoadImage(" C:\\Users\\User\\Pictures\\opencvfile\\公路1.jpg");//我习惯用这个进行读取可读性好啊
 IplImage *img = cvLoadImage(argv[2]);//与argv[1]相同一样复制到那里 用空格分开

 //显示图像
 cvNamedWindow("img"); //建立窗口
 cvShowImage("img", img);//显示图像
 cvNamedWindow("img1");
 cvShowImage("img1", img1);

 cvWaitKey(0);//cvWaitKey()>=0时一直显示 》=0时显示图片的时间以毫秒为准

 cvReleaseImage(&img);//释放图像资源
 cvReleaseImage(&img1);
 cvDestroyAllWindows();//释放所有窗口资源

 //system("pause");//如果闪退加入
 return 0;
}

[项目] -> 属性页 -> 配置属性 -> 调试->命令参数 添加图片路径

执行结果


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值