我将从多通道矩阵中提取一个通道。假设Mat img
是一个三通道矩阵,我想提取第一个通道。有没有方便的函数可以执行此操作,例如:MATLAB中的out = img(:,:,1)
。我知道cv::split
可以通过拆分各个渠道来做到这一点。但是我想要另一种方法,因为我不会使用许多其他提取的通道。
答案 0 :(得分:4)
OpenCV中有一个用于此的功能,令我惊讶的是:cv::extractChannel()
。来自the docs:
C ++签名:
void cv::extractChannel ( InputArray src,
OutputArray dst,
int coi
)
Python签名:
dst = cv.extractChannel( src, coi[, dst] )
说明:
从src提取单个通道(coi是从0开始的索引)
参数
*src
输入数组
*dst
输出数组
*coi
要提取的频道索引