【发布时间】:2014-10-21 08:39:54
【问题描述】:
要从 HSV 图像中分离色调通道,here 是使用 mixChannels 函数的代码:
/// Transform it to HSV
cvtColor( src, hsv, CV_BGR2HSV );
/// Use only the Hue value
hue.create( hsv.size(), hsv.depth() );
int ch[] = { 0, 0 };
mixChannels( &hsv, 1, &hue, 1, ch, 1 );
但我知道split函数也可以这样做:
vector<Mat> chs;
split(hsv, chs);
Mat hue = chs[0];
这样好吗? 如果这些相同,我认为拆分方法更干净。我说的对吗?
【问题讨论】:
-
您说的非常对,
split()用于将多通道矩阵的所有通道拆分为单通道矩阵。另一方面,如果您只对一个频道感兴趣,您可以使用mixChannels()。因此,您不必像我们使用split()那样为其他通道分配内存。 -
好答案!你可以把它放在回答部分,以便我接受。
标签: opencv image-processing mat hsv