Imread & argv 图像位置? [复制]

Posted

技术标签:

【中文标题】Imread & argv 图像位置? [复制]【英文标题】:Imread & argv image location? [duplicate] 【发布时间】:2014-07-07 07:30:58 【问题描述】:

我是 C++ 编码的新手,目前正在开发一个应用程序,该应用程序可以清除图片中的所有对象,除了最大的对象。我正在寻找基于我找到的边界框教程进行对象大小检测here

但是这段代码包含一行使用 imread 函数,然后是一个数组来指定图像的路径

/// Load source image and convert it to gray
src = imread( argv[1], 1 );

在这种情况下如何使用 argv[1] 来指出图像的来源?我认为 argv & argc 与调用的命令行数量有关吗?有什么信息吗?

如前所述,我是 C++ 新手,如果这是一个愚蠢的问题,我很抱歉。 提前致谢

【问题讨论】:

【参考方案1】:

argc 包含多个命令行参数,其中argv 包含命令本身,其中第一个命令是程序名称本身。例如:

./program param1 param2

将有argc=3

argv[0] = program
argv[1] = param1
argv[2] = param2

所以如果你的程序名称是program 并且你的文件路径是D:/folder/file 那么您应该将param1 替换为D:/folder/file,然后argv[1] 将包含文件路径。

【讨论】:

如何在执行程序本身之前添加这些命令? Cmd 仅在调试后立即弹出.. @TheAlPaca02:这不再是 C++ 问题,而是环境问题。根据您的问题,您可能正在使用代码编辑器(例如 Visual Studio)来开发您的 C++ 程序,并从您的编辑器启动该程序,我建议您检查一下如何在您的特定编辑器中添加命令行(如果您找不到,请提出一个新问题,准确说明您使用的是哪个编辑器)。 @TheAlPaca02,正如 Matthieu 指出的那样,使用您正在使用的特定 IDE 进行搜索,如何设置参数。对于 Visual Studio,右键单击项目,选择属性,然后在对话框中,您将找到一个选项Command Arguments,您可以在其中设置它们。注意:使用 IDE 时无需指定程序名称。【参考方案2】:

您可以在 argc 上找到信息,argv here。所以是的imread 可以将argv 中的参数之一作为指定图像文件名/路径的字符串。

【讨论】:

以上是关于Imread & argv 图像位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

GrabCut - bgdModel & fgdModel 为空 - 断言错误

ubuntu下opencv学习

opencv用imread( argv[1], 1)读取图片

opencv之imread()

opencv:图像轮廓发现

opencv:图像卷积