【问题标题】:Single Channel of Mat as a matrix OpencvMat的单通道作为矩阵Opencv
【发布时间】:2013-01-24 21:13:43
【问题描述】:

我试图将存储在 Mat 通道中的 RGB 图像的每个通道转换为 3 个 2D 矩阵,每个矩阵用于 R、G 和 B。这个问题可能是初级的,但你能告诉我如何实现这个吗?我在Linux中使用opencv2.4.3,Cmake编译器。

我使用了 split,但它再次将值存储在 Mat 中。我想要一个可以轻松访问的简单二维数组,而不是 Mat。你能帮帮我吗?

【问题讨论】:

  • 我尝试了vectorchannel_rgb(3) split(src,channel_rgb) 并尝试访问channel_rgb[0],[1],[2]。我认为这行不通。
  • 我真的不明白二维数组如何比 Mat 更容易访问...如果您不喜欢 .at 语法,为什么不将其转换为 Mat_ ?
  • 你所说的二维数组是指指向数组的指针数组吗?如 double_ptr[i][j]?如果这就是您所说的维度,那么在内部,Mat 始终表示一维数据

标签: c++ image-processing opencv computer-vision


【解决方案1】:

您可以使用split,来自opencv docs

函数 split 将多通道数组拆分为单独的单通道数组

【讨论】:

  • vectorchannel_rgb(3) 分割(src,channel_rgb)。我试过这个。我应该改为使用 vectorchannel_rgb(3) split(src,channel_rgb) 吗?但我正在寻找简单的二维数组,而不是 Mat。你能帮帮我吗?
  • 有没有一种简单的方法可以将 Mat 转换为 2D 数组?
  • 如果我的疑问是相关的,或者我不清楚,请帮助我?
  • 使用Mat...使用Mat有什么问题?...或者将Mat中的元素逐个复制到二维无符号字符数组...分别对所有3个通道执行此操作...
猜你喜欢
  • 2012-09-02
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
相关资源
最近更新 更多