我是opencv的新手,我对编码中最简单的操作之一有疑问:将值传递给函数.
继承人我想做什么,
cv:Mat
从0到50的值初始化main函数中的a .foo()
,该函数又简单地打印出矩阵中每个元素的值.而已.现在我已经在多个地方读过,当这些矩阵被传递时,它只是传递的头,而不是实际的数据.那我怎么能够在被调用的函数中读出这个矩阵的值,好像整个矩阵都被传递了一样?
这是我以前从未见过的一个问题,并认为这将是值得分享的.我不知道为什么会这样.
这是我调用我的程序的方式:
./foo -switch1 arg1 -switch2 arg2 -switch3 arg3 | arg4 | arg5 -switch4 -arg6
每个开关用于指示不同类型的参数,我会相应地解析它们.
与交换机3,它表示发生该问题arg3
,arg4
,arg5
所有对应于相同的开关,并使用被描绘|
字符.
出于某种原因,我可以完美地运行程序,但是当我尝试使用gdb进行调试时,我的程序崩溃并出现during startup, program exited with code 127
错误.
这就是让我感兴趣的东西.它还说bin/bash: arg4 not found
.它接受第一个|
字符后面的参数,现在我假设它将其视为管道字符,并尝试调用bash脚本.
为什么会这样?编译器是否采用整个命令行字符串并将空格分隔的标记视为不同的参数?为什么|
被解释不同?我尝试添加arg3|arg4|arg5
倒置引号""
,它工作正常.我也尝试过将它们分开-
,例如.arg3-arg4-arg5
,这也很好.