I could not find in Internet a function which can return a RGB color value between two colors So I had to do it myself. I hope it will be useful for someone.
CvScalar interpolate(CvScalar c1, CvScalar c2, double value){
if( value <= 0.0 ){ return c1; }
if( value >= 1.0 ){ return c2; }
int red = cvRound((1.0 - value) * c1.val[2] + value * c2.val[2]);
int green = cvRound((1.0 - value) * c1.val[1] + value * c2.val[1]);
int blue = cvRound((1.0 - value) * c1.val[0] + value * c2.val[0]);
return CV_RGB(red, green, blue);
}