【问题标题】:OpenCV - Create multichannel Mat from numpy arrayOpenCV - 从 numpy 数组创建多通道 Mat
【发布时间】:2015-07-08 18:56:51
【问题描述】:

给定一个像下面这样的 numpy 数组,你能把它转换成一个多通道的 cv mat,把数据折叠成一列吗?

arr = [[x1, y1],
       [x2, y2],  
       [x3, y3]]

arr = np.array(arr, dtype='f4')

mat = cv.fromarray(arr)

通过这种方式,生成的垫子有 3 行和 2 个单通道列(垫子的类型为 32FC1)。我需要生成的垫子有 3 行和一个 2 通道列(具体来说,是 32FC2 类型)。

【问题讨论】:

  • 这个帖子有帮助吗? stackoverflow.com/questions/12535715/…
  • 不幸的是没有:(尝试使用 cv.Convert 会出现以下错误:cv2.error: src.size == dst.size && src.channels() == dst.channels()。看起来就像您无法在具有不同通道数的垫子之间进行转换一样。

标签: python arrays opencv numpy


【解决方案1】:

您可以在现有阵列上使用np.array() 来创建一个阵列,该阵列将转换为具有额外通道的 OpenCV Mat:

a = np.array([1,2,3], dtype='float32')
a = np.array([a])

将转换为cv.fromarray下的 CV_32FC2(两个通道)类型的 Mat

Source

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 2012-11-15
    • 2023-03-30
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2022-01-22
    相关资源
    最近更新 更多