خوب ابتدا یک تصویر 3 کانل بسازید.
Mat rgb(gray_img.size(),cv_8uc3);
بعد این تصویر را به 3 تصویر تبدیل کن به صورت زیر.
vector<Mat> imgs;
cv::split(rgb,imgs);
بعد بیا اون طوری که میخای پرش کن
imgs[0].setTo(0);
imgs[1].setTo(0);
gray_img.copyTo(imgs[2]);
حالا تصویر ها رو دویاره ادغام کنید تا تصویر اصلی تون ساخته شه.
cv::merge(imgs,rgb);