Может быть, это функция 2.1 или где-то между 2.1 и текущей версией магистрали, но у меня это нормально работает:
Mat cc = channels[k];
double fmin,fmax;
cv::minMaxLoc( cc, &fmin, &fmax );
if( fmax > 1.0 )
fmax = 255.0 ;
else
fmax = 1.0;
cc = ( cc / (fmax + 1e-9) );
каналы поступают с:
channels = vector<Mat>(3);
cv::split( img, channels );
Так, конечно, просто используйте скалярное выражение, по крайней мере, в 2.1 / текущей ветке SVN;что произойдет, если вы попробуете выше в 2.0?