OpenCV中关于InputArray、InputArrayOfArrays使用的注意事项

来源:互联网 发布:开源三网合一源码下载 编辑:程序博客网 时间:2024/06/06 05:19

分享一个今天使用opencv时遇到函数形参为InputArrayOfArrays类型的调试过程。
1. 今天写程序使用到fillPoly()函数,声明如下:
这里写图片描述
2. 然后看了一下InputArrayOfArrays原来是InputArray,(如下图)
这里写图片描述
3. 然后再在doc文档里看了一下_InputArray的构造函数,发现可以用vector,(如下图)
这里写图片描述
4. 这样就好办了,直接在fillPoly()的第二个参数里,用了一个vector,(如下图)
这里写图片描述
这里写图片描述
5. 这样写完之后,编译通过,运行会出错,调试代码跟进fillPoly(),发现出错在这里,(如下图)
这里写图片描述
即如果是一个简单的vector类型,在这一步会出错。
6. 一番周折后发现,再看doc里_InputArray的构造函数,(如下图)
这里写图片描述
7. 再想想其类的名称,InputArrayOfArrays,数组的数组嘛,所以把原来的参数vector外边又填了一层vector,如下
这里写图片描述
8. 运行成功。

经验:Opencv里一个类型会起很多个别名,一定程度上这是很有意义。如上述问题其构造函数可以用vector作为参数,也可以使用vector

0 0
原创粉丝点击