在我的应用程序中,我有一个通过引用接收cv :: Mat对象的函数.这是函数的声明:
void getChains(cv::Mat &img,std::vector<chain> &chains,cv::Mat &ch,char p=0,int sx=0,int sy=0);
Run Code Online (Sandbox Code Playgroud)
这个函数是递归的,并且在main函数的第一次调用时并不需要aaa,所以我只是声明了一个空的aaa来将它传递给函数调用.在随后的递归调用函数中生成自己的ch Mat对象.
std::vector<chain> chains1;
cv::Mat aaa();
getChains(bin1,chains1,aaa);
Run Code Online (Sandbox Code Playgroud)
但是,编译器返回错误:
main.cpp:75:错误:从类型为'cv :: Mat(*)()的临时类型'cv :: Mat&'的非const引用无效初始化'aux.h:21:错误:传递参数3'void getChains(cv :: Mat&,std :: vector>&,cv :: Mat&,char,int,int)'
如果我改变aaa声明
cv::Mat aaa=cv::Mat();
Run Code Online (Sandbox Code Playgroud)
它编译没有问题.
该函数被传递一个二进制图像img,并获得像素粘在一起(链)的所有像素组,并将所有像素的坐标存储在链矢量中.在openCV中是否已经存在一个类似的东西?
谢谢
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |