Для начала нужно получить маску с нужными пикселями для изменения тона
IplImage cvInRange = hsvThreshold(image, from, to);
Далее разложить изображение на нужные каналы
IplImage hsvImage = image.clone();
cvCvtColor(image, hsvImage, CV_BGR2HSV);
IplImage hChannel = cvCreateImage(cvSize, hsvImage.depth(), 1);
IplImage sChannel = cvCreateImage(cvSize, hsvImage.depth(), 1);
IplImage vChannel = cvCreateImage(cvSize, hsvImage.depth(), 1);
cvSplit(hsvImage, hChannel, sChannel, vChannel, null);
Далее нужно для канала hChannel изменить тон для нужных пикселей из маски cvInRange
cvSet(hChannel, cvScalar(newH, 0, 0, 0), cvInRange);
После можно собрать все каналы
cvMerge(hChannel, sChannel, vChannel, null, dest);
Весь код
img = converter.convert(frame);
CvScalar from= cvScalar(90,0,0,0);
CvScalar to= cvScalar(130,255,255,255);
IplImage cvInRange = hsvThreshold(image, from, to);
int newH = 119;
IplImage image = img.clone();
CvSize cvSize = cvGetSize(image);
IplImage hsvImage = image.clone();
cvCvtColor(image, hsvImage, CV_BGR2HSV);
IplImage hChannel = cvCreateImage(cvSize, hsvImage.depth(), 1);
IplImage sChannel = cvCreateImage(cvSize, hsvImage.depth(), 1);
IplImage vChannel = cvCreateImage(cvSize, hsvImage.depth(), 1);
cvSplit(hsvImage, hChannel, sChannel, vChannel, null);
cvSet(hChannel, cvScalar(newH,0,0,0), cvInRange);
IplImage dest = image.clone();
cvCvtColor(image, dest, CV_BGR2HSV);
cvMerge(hChannel, sChannel, vChannel, null, dest);
cvCvtColor(dest, img, CV_HSV2BGR);
canvasFrame.showImage(converter.convert(img));