c++ - 将 cv::Mat A 的每个成员与 cv::Mat B 合并,以创建一个带有 [a(x,y),b(x,y)] 的 cv::Mat C

标签 c++ opencv image-processing matrix

我正在尝试从另外两个矩阵生成一个 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/

相关文章:

c++ - imread 的像素类型

java - 如何使用 cvFitLine Java

c++ - 组合两个矩阵,保留它们的元素值

python - 在包含数百张图像的数据集中比较和绘制相同颜色的区域

python - 无法分配ndarray

java - JNI 加载具有依赖项的 jar

c++ - 以下c++代码的语法是什么?

C++ 子集总和 2^n/递归错误/澄清

c++ - 返回 vector 的第一个元素被(重新)设置为 0

c# - 图像拉直算法