void Test_ColorReduceByIterator()
{
Mat g_srcImage=imread("D:\\OpenCV Projects\\OpenCV_Test_Image\\6.jpg");
Mat g_tmpImage;
g_tmpImage=g_srcImage.clone();
Mat_<Vec3b>::iterator it_start=g_tmpImage.begin<Vec3b>();
Mat_<Vec3b>::iterator it_end=g_tmpImage.end<Vec3b>();
for(;it_start!=it_end;it_start++)
{
//由于是3通道的图像,所有一次要处理3个数据,也可for循环处理
(*it_start)[0]=(*it_start)[0]/60*60+60/2; //B通道
(*it_start)[1]=(*it_start)[1]/60*60+60/2; //G通道
(*it_start)[2]=(*it_start)[2]/60*60+60/2; //R通道
}
imshow("原图",g_srcImage);
imshow("change",g_tmpImage);
}

原文:http://www.cnblogs.com/foggia2004/p/6596747.html