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

来源:互联网 发布:淘宝外围女孙佑怡 编辑:程序博客网 时间:2024/06/01 22:44

刚刚开始学习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"


0 0
原创粉丝点击