OpenCV for Unityで死神の目を作った際(記事はこちら)に,雰囲気を出すために画像全体を赤くしたいと思いました.
C#で書いていますが,どの言語でも同じ処理でできると思います.
Mat ConvertToRed(Mat rgba) //RGBでも同じ
{
var channels = new List<Mat>();
var zeroMat = new Mat(new Size(rgba.width(), rgba.height()), CV_8UC1, new Scalar(0));
var redMat = new Mat();
split(rgba, channels); //チャンネルごとに分離
channels[1] = zeroMat; //GとBチャンネルの全画素を0で置き換える
channels[2] = zeroMat;
merge(channels, redMat); //マージしてRGBA画像に戻す
return redMat;
}
zeroMatで置き換えるチャンネルを変えればいろんな色に変換できます.