Opencv 如何在不使用拆分的情况下从多通道矩阵中提取单通道矩阵
我将从多通道矩阵中提取一个通道。假设Opencv 如何在不使用拆分的情况下从多通道矩阵中提取单通道矩阵,opencv,Opencv,我将从多通道矩阵中提取一个通道。假设matimg是一个三通道矩阵,我想提取第一个通道。是否有任何方便的函数可以执行此操作,例如:MATLAB中的:out=img(:,:,1)。我知道,cv::split可以通过分割各个频道来实现这一点。但是我想要另一种方法,因为我不会使用许多其他提取的通道 OpenCV中有一个函数用于此,有点让我吃惊:cv::extractChannel()。发件人: C++签名: void cv::extractChannel ( InputArray src,
matimg
是一个三通道矩阵,我想提取第一个通道。是否有任何方便的函数可以执行此操作,例如:MATLAB中的:out=img(:,:,1)
。我知道,cv::split
可以通过分割各个频道来实现这一点。但是我想要另一种方法,因为我不会使用许多其他提取的通道 OpenCV中有一个函数用于此,有点让我吃惊:cv::extractChannel()
。发件人:
C++签名:
void cv::extractChannel ( InputArray src,
OutputArray dst,
int coi
)
dst = cv.extractChannel( src, coi[, dst] )
Python签名:
void cv::extractChannel ( InputArray src,
OutputArray dst,
int coi
)
dst = cv.extractChannel( src, coi[, dst] )
说明:
从src提取单个通道(coi是基于0的索引)
参数*
src
输入数组*
dst
输出阵列*
coi
要提取的通道索引
OpenCV中有一个函数可以实现这一点,有点让我吃惊:
cv::extractChannel()
。发件人:
C++签名:
void cv::extractChannel ( InputArray src,
OutputArray dst,
int coi
)
dst = cv.extractChannel( src, coi[, dst] )
Python签名:
void cv::extractChannel ( InputArray src,
OutputArray dst,
int coi
)
dst = cv.extractChannel( src, coi[, dst] )
说明:
从src提取单个通道(coi是基于0的索引)
参数*
src
输入数组*
dst
输出阵列*
coi
要提取的通道索引
matlab针对这种矩阵优化。在C++中,你只限于如何在内存中排列图像。如果您唯一的问题是不使用其他频道,那么cv::split就不是真正的问题。忽略不需要的输出。如果你只想使用更少的代码(更简单的编程),你可以编写一个hrlper函数,使用split,但只返回想要的通道。matlab针对这种矩阵优化。在C++中,你只限于如何在内存中排列图像。如果您唯一的问题是不使用其他频道,那么cv::split就不是真正的问题。忽略不需要的输出。如果你只想使用更少的代码(更简单的编程),你可以编写一个hrlper函数,使用split,但只返回想要的通道。