我正在尝试从另外两个矩阵生成一个 cv::Mat C,以便获得第三个矩阵,该矩阵由通过组合矩阵 A 和 B 的一维点生成的二维点构成。
我的问题是,我尝试的所有操作都只是连接矩阵,并没有真正将每个点与另一个点合并,这将导致 2-D 点的 3-D 矩阵。
有人可以帮我解决这个问题吗?
非常感谢。
只是为了更清楚:
我有的是 A = [(0, 1, 2),(3, 4, 5)]
和 B=[(5, 4, 3),(2 , 1, 0)]
我想创建
C = {[(0,5), (1,4), (2,3)],
[(3,2), (4,1), (5,0)]}.
谢谢
最佳答案
您可以通过创建自定义类型矩阵来做到这一点。参见 here
基本上,您需要创建 DataType
的特化处理点(数据对)的类。
或者您可以使用 std::complex<double>
的给定矩阵而不是整数作为丑陋的捷径。文档中的示例代码:
Mat B = Mat_<std::complex<double> >(3, 3);
但是,此解决方案可能不是您一般问题的真正解决方案。 Google XY 问题。
关于c++ - 将 cv::Mat A 的每个成员与 cv::Mat B 合并,以创建一个带有 [a(x,y),b(x,y)] 的 cv::Mat C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813858/