C++ 将cv::Mat A的每个成员与cv::Mat B合并,以创建一个cv::Mat C,其结果是[A(x,y),B(x,y)]

C++ 将cv::Mat A的每个成员与cv::Mat B合并,以创建一个cv::Mat C,其结果是[A(x,y),B(x,y)],c++,opencv,image-processing,matrix,C++,Opencv,Image Processing,Matrix,我试图从另外两个矩阵中生成一个cv::Mat C,以得到第三个矩阵,该矩阵由矩阵a和B的一维点组合而成的二维点构成 我的问题是,我尝试的所有方法都只是将矩阵串联起来,而不是真正地将每个点与另一个点合并,这将导致由二维点组成的三维矩阵 有人能帮我解决这个问题吗 非常感谢你 更清楚地说: 我拥有的是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)]}

我试图从另外两个矩阵中生成一个cv::Mat C,以得到第三个矩阵,该矩阵由矩阵a和B的一维点组合而成的二维点构成

我的问题是,我尝试的所有方法都只是将矩阵串联起来,而不是真正地将每个点与另一个点合并,这将导致由二维点组成的三维矩阵

有人能帮我解决这个问题吗

非常感谢你

更清楚地说:

我拥有的是
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)]}.

谢谢

您可以通过创建自定义类型矩阵来实现这一点。看

基本上,您需要创建一个专门化的
DataType
类来处理点(数据对)

或者,您可以使用给定的
std::complex
矩阵而不是整数作为难看的快捷方式。文档中的示例代码:

Mat B = Mat_<std::complex<double> >(3, 3);
matb=Mat_u3,3;

但是,此解决方案可能不是一般问题的真正解决方案。谷歌XY问题。

我不会把使用std::complex称为“丑陋的快捷方式”。建议使用已经定义的结构,尽管在这种情况下使用std::pair更合适。更合适的是,你是对的。我不需要创建这个矩阵。我的问题是,我已经校准了我的相机,但我需要上传相机矩阵和失真系数,以获得实时校准的图像。但我仍然不知道如何做到这一点。至少现在我明白了,我是在问Y,而我真正的问题是X。我不认为opencv中存在这样的API会自动做到这一点。