0

我有一个尺寸为 50x50 的 SparseMat A。我有另一个 10x10 尺寸的矩阵 B。我想在 B 中添加 A (0~10 x 0~10) 的子矩阵。如何提取 SparseMat 的子矩阵。我在 Mat 中确实喜欢 A(Range(0,10), Range(0,10)),错误是“在没有适当的 operator() 或将函数转换为指针函数类型的情况下调用类类型的对象”。如何解决这个问题?谢谢

4

1 回答 1

0

这些函数在 OpenCV 中没有实现(很少有操作实际上是在稀疏矩阵上实现的)。

您需要做的是使用提供的SparseMatConstIterator_<T>迭代器遍历稀疏矩阵,测试非零点的位置是否在您感兴趣的子区域中,然后编写它。您必须遍历输入稀疏矩阵的非零元素,但您可以在目标矩阵已满时添加测试以提前退出。

顺便说一句,50x50 并没有那么大。您可以切换到密集矩阵以便更轻松地处理矩阵。我定期在 OpenCV 中使用 1024x1024 矩阵。

于 2013-04-15T12:31:39.440 回答