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