如何通过引用传递OpenCV MAT
how to pass opencv mat by reference
i 有 1 个矩阵 (3 通道( ->cv::Mat 通道[3];
& 3 矩阵 (1通道( -> cpu_filter0,cpu_filter90,cpu_filter120
以前我做过这样的事情,
cv::Mat cpu_filter0,cpu_filter90,cpu_filter120
cv::Mat channels[] = {cpu_filter0,cpu_filter90,cpu_filter120}
但现在我想这样做
cv::Mat cpu_filter0,cpu_filter90,cpu_filter120
cv::Mat channels3[3];
channels[0] = &cpu_filter0, channels[1] = &cpu_filter90, channels[0] = &cpu_filter120;
或由,
cv::Mat channels3[] = {&cpu_filter0_0,&cpu_filter120_120,&cpu_filter240_240};
想知道这样做的正确方法是什么?
你是说你用cv::Mat channels[3];
创建了一个多通道矩阵吗?因为这不是这样做的,所以这将创建一个包含 3 个矩阵的 c 样式数组。
首先,确保您非常了解语言(C++(和(C 样式(数组的工作原理(我找到了本教程,但我还没有读过(。
然后,阅读此处的"详细说明"段落。
总而言之,有不同的方法可以创建cv::Mat,例如:
cv::Mat m(10, 10, CV_32FC3);
这将创建一个 10x10 矩阵,其中包含 3 个 32 位浮点数通道。其他值可以在这里找到。只需为您想要的通道数添加"C"。
现在,如何将它们作为参考传递?一如既往:
void my_func(cv::Mat ¶m) {
// do stuff
}
// in another function
cv::Mat m(10, 10, CV_32FC3);
my_func(m);
相关文章:
- C++中的openCV Mat访问冲突
- 如何通过引用传递OpenCV MAT
- Read OpenCV Mat 16bit to QImage 8bit Greyscale
- 将本地 OpenCV Mat 变量声明为静态以防止重新分配
- 将 OpenCv Mat 从 C++ 传递给 Python
- 将帧从 h264 流解码到 OpenCV Mat
- 如果函数使用 OPENCV Mat 作为输入,如何编写头文件?
- 无法从Java读取C++中保存的Opencv Mat映像
- 如何通过套接字发送OpenCV Mat
- 如何有效地在OpenCV Mat和GpuMat上进行元素处理?
- 什么是使用 opencv::Mat 优化 c++ 矩阵计算
- openCV Mat 中的值在自定义类构造函数中设置后不会保留
- OpenCV Mat 的逗号分隔初始值设定项是如何用C++实现的?
- Libav AVFrame to Opencv Mat to AVPacket conversion
- 采用OpenCV Mat<doube>并转换为12位值数组。
- 如何将C++数组转换为opencv Mat
- 通过QT WebSocket将OpenCV Mat Image发送到HTML客户端
- OpenCV Mat::row assignment
- 如何在 OpenCV Mat 中保留固定的缓冲区大小
- OPENCV MAT问题:直方图和此循环之间的差异