在VS2013中运行程序时如何传递实参

刚刚开始学习OpenCV,菜鸟一只。

今天在运行一个简单的opencv小程序时,竟然不知道怎么给程序传递实参了,现在明白了,写下来,记录一下。

代码如下

#include<cv.h>
#include<highgui.h>

using namespace cv;

int main(int argc, char** argv)
{
    if (argc != 2)
    {
        printf("useage: %s <imagefile> \n", argv[0]);
        return -1;
    }

    char* imageName = argv[1];

    Mat image;
    image = imread(imageName, CV_LOAD_IMAGE_COLOR);

    if (!image.data)
    {
        printf("No image data \n");
        return -1;
    }

    Mat gray_image;
    cvtColor(image, gray_image, CV_BGR2GRAY);

    imwrite("F:\\opencvEx\\output\\gray_image.jpg", gray_image);

    namedWindow(imageName, CV_WINDOW_AUTOSIZE);
    namedWindow("Gray image", CV_WINDOW_AUTOSIZE);

    imshow(imageName, image);
    imshow("Gray image", gray_image);

    waitKey(0);

    return 0;
}

平时,直接点击工具栏上的运行按钮即可


这个程序需要传递图片进去,不能直接运行。

查询资料知道,int main(int argc, char** argv)中的argc是argv数组中字符串的数目,argv[0]存放main函数所在的文件的名称。

1.【开始】->在【搜索程序和文件】中输入cmd->回车,然后进入工作空间所在目录。

例如我的工作空间名称为Test,放在D:\OpencvExample下面,则我们要进入到的目录是D:\OpencvExample\Test下

2.进入到工作空间的Debug目录下,例如我的是:D:\OpencvExample\Test\Debug

说明,在一个解决方案下,无论有多少项目,所有的xx.exe都放在解决方案里的Debug文件夹下。

3.输入xx.exe和图片路径,回车即可。

例如我的项目名称为opencvTest2,图片存放在F:\opencvEx下,图片名为donkey.jpg,

则我应该输入的是:opencvTest2.exe  F:\opencvEx\donkey.jpg (两个输入变量之间有一个空格)

注意:在DOS下,输入变量以空格隔开,我们也可以用引号引起来,防止输入的文件名或路径中有空格,

即:"opencvTest2.exe" " F:\opencvEx\donkey.jpg"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值