Mat的单通道作为矩阵Opencv
Posted
技术标签:
【中文标题】Mat的单通道作为矩阵Opencv【英文标题】:Single Channel of Mat as a matrix 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 始终表示一维数据
【参考方案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个通道执行此操作... 以上是关于Mat的单通道作为矩阵Opencv的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Mat 转换为 dlib 的矩阵
opencv中 Mat矩阵申明形式
opencv矩阵运算
学习OpenCV2——Mat之通道的理解
[OpenCV学习笔记2][Mat数据类型和操作]
opencv中Mat使用