gpt4 book ai didi

c++ - cv::Mat aaa(); 之间的区别和 cv::Mat aaa=cv::Mat();

转载 作者:搜寻专家 更新时间:2023-10-31 00:41:38 32 4
gpt4 key购买 nike

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

     void getChains(cv::Mat &img,std::vector<chain> &chains,cv::Mat &ch,char p=0,int sx=0,int sy=0);

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

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 声明更改为

        cv::Mat aaa=cv::Mat();

它编译没有问题。

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

谢谢

最佳答案

这是一个函数定义:cv::Mat aaa();。你真正想写的是 cv::Mat aaa;

关于c++ - cv::Mat aaa(); 之间的区别和 cv::Mat aaa=cv::Mat();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12919445/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com