首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cv::Mat aaa()与cv::Mat aaa=cv::Mat()的区别;

cv::Mat aaa()与cv::Mat aaa=cv::Mat()的区别;
EN

Stack Overflow用户
提问于 2012-10-17 00:38:40
回答 1查看 515关注 0票数 2

在我的应用程序中,我有一个通过引用接收cv::Mat对象的函数。下面是函数的声明:

代码语言:javascript
复制
     void getChains(cv::Mat &img,std::vector<chain> &chains,cv::Mat &ch,char p=0,int sx=0,int sy=0);

这个函数是递归的,在第一次从main函数调用时,实际上并不需要aaa,所以我只声明了一个空的aaa来将其传递给函数调用。在随后的递归调用中,函数生成自己的ch Mat对象。

代码语言:javascript
复制
std::vector<chain> chains1;
cv::Mat aaa();

getChains(bin1,chains1,aaa);

但是,编译器会返回一个错误:

main.cpp:75:错误:从类型为‘cv::Mat(*)()’的临时对象初始化类型为‘cv::Mat&’的非常数引用时无效。aux.h:21:错误:在传递‘void getChains(cv::Mat&,std::vector >&,cv::Mat&,char,int,int)’的参数3时

如果我将aaa声明改为

代码语言:javascript
复制
        cv::Mat aaa=cv::Mat();

它编译起来没有问题。

向该函数传递一个二进制图像img,并获取其中像素粘合在一起(链)的所有像素组,并将所有像素的坐标存储在链向量中。在openCV中是否已经有一个函数可以做类似的事情?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-17 00:43:51

这是一个函数定义:cv::Mat aaa();。您实际上想要编写的是cv::Mat aaa;

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12919445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档