首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何参考通过opencv垫子

如何参考通过opencv垫子
EN

Stack Overflow用户
提问于 2018-09-18 09:49:18
回答 1查看 3.8K关注 0票数 2

我有一个矩阵(3通道) -> cv::Mat channels3;

&3矩阵(1通道) -> cpu_filter0,cpu_filter90,cpu_filter120

以前我做过这样的事,

代码语言:javascript
复制
cv::Mat cpu_filter0,cpu_filter90,cpu_filter120
cv::Mat channels[] = {cpu_filter0,cpu_filter90,cpu_filter120}

但现在我想这样做

代码语言:javascript
复制
cv::Mat cpu_filter0,cpu_filter90,cpu_filter120
cv::Mat channels3[3];
channels[0] = &cpu_filter0, channels[1] = &cpu_filter90, channels[0] = &cpu_filter120;

或者说,

代码语言:javascript
复制
cv::Mat channels3[] = {&cpu_filter0_0,&cpu_filter120_120,&cpu_filter240_240};

想知道什么是正确的方法吗??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 10:07:20

你是说你用cv::Mat channels[3];创建了一个多通道矩阵?因为这不是这样做的,这将创建一个具有3个矩阵的c样式数组。

首先,确保您很好地了解语言(C++)以及(C风格)数组是如何工作的(我找到了本教程,但我还没有读过)。

然后,阅读“详细描述”一段这里

总之,创建cv::Mat有不同的方法,例如:

代码语言:javascript
复制
cv::Mat m(10, 10, CV_32FC3);

这将创建一个10x10矩阵,其中包含3个32位浮点数的通道。其他值可以找到这里。只需为你想要的频道数添加"C“即可。

那么,如何传递它们作为参考呢?就像往常一样:

代码语言:javascript
复制
void my_func(cv::Mat &param) {
    // do stuff
}

// in another function
cv::Mat m(10, 10, CV_32FC3);
my_func(m);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52383763

复制
相关文章

相似问题

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