将 cv::Mat A 的每个成员与 cv::Mat B 合并,以创建一个 cv::Mat C,结果为 [a(x,y),b(x,y)]
Merge every member of cv::Mat A with cv::Mat B in order to create a cv::Mat C with [a(x,y),b(x,y)] as a result
我正在尝试从另外两个矩阵生成 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
class 的特化来处理点(数据对)。
或者您可以使用 std::complex<double>
的给定矩阵而不是整数作为丑陋的快捷方式。文档中的示例代码:
Mat B = Mat_<std::complex<double> >(3, 3);
但是,此解决方案可能不是您一般问题的真正解决方案。 Google XY问题。
我正在尝试从另外两个矩阵生成 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
class 的特化来处理点(数据对)。
或者您可以使用 std::complex<double>
的给定矩阵而不是整数作为丑陋的快捷方式。文档中的示例代码:
Mat B = Mat_<std::complex<double> >(3, 3);
但是,此解决方案可能不是您一般问题的真正解决方案。 Google XY问题。