是否有可能在cv::Mat中保存复杂的数据结构?
Is it possible to hold a complex data structure inside of a cv::Mat?
我有一个cv::Mat图像,我正在考虑具有相同大小的第二个cv::Mat,但每个条目存储对应于该像素的复杂数据结构。这可以用cv::Mat来完成,还是向量的向量是我唯一的开放?
查看cv::Mat
的文档,特别是构造函数和type
, channels
和depth
方法,它似乎只能包含简单的OpenCV数据类型(8/16/32位整型,32/64位浮点数,或这些的1/2/3/4元组,但不是混合物,当然)。
但即便如此,我也不建议将向量的向量用于二维数组/矩阵/图像(其中所有行的列数相同),而是使用简单的一维向量,并使用一些简单的索引魔法从2D映射到1D。这有更好的内存位置和分配行为。
这取决于你的数据结构有多复杂。您只能使用元素具有相同类型的结构。opencv通过
提供了这种可能性Vec<n, type>
实例Vec<6,float> vv;
//fill vector
vv.push_back(Vec6f(1,2,3,4,5,6);
Mat m(vv);
Vec<6,float> vec = m.at<Vec6f>(1);
正如christian所说,你不能混合类型(有一个float通道和一个char通道)
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 将数据插入一些复杂的数据结构-C
- QT:使用QVariant任意复杂的数据结构
- 最短路径的dijkstra算法的时间复杂度是否取决于所使用的数据结构?
- 具有恒定时间复杂度的无向图边的数据结构
- 如何在C++中编码大型复杂、恒定的数据结构
- 使用复杂的数据结构(向量数组的数组数组)时内存泄漏
- 我怎么知道一个数据结构按值搜索的平均复杂度
- 是否有可能在cv::Mat中保存复杂的数据结构?
- 在c++中实现复杂的数据结构
- 复杂的数据结构,同时嵌入扩展 Python 与C++
- 给定数据结构的时间复杂度
- 何时使用 std::complex<long double> vs. 自己的复杂数据类型(结构等)
- 数据结构- c++二叉搜索树-复杂类型