1 | initial version |
You really need this step. But some descriptors (for example SURF) contain such code:
CV_Assert(!img.empty() && img.depth() == CV_8U);
if( img.channels() > 1 )
cvtColor(img, img, COLOR_BGR2GRAY);
So you have not problems with them.
The reason is that these algorithms are designed to obtain the intensity. Also there are some methods for RGB images (see for example OpponentSIFT), when descriptors are calculated for each channel independently.