给单个通道赋值伪彩,用Cv2.Merge函数,给一个通道赋值,其他两个通道为0,
不需要for循环对每个像素赋值
赋红色伪彩
Mat src = new Mat("C:\\1.tif", ImreadModes.Grayscale);//原始图片
Mat dst = new Mat(src.Size(), OpenCvSharp.MatType.CV_8UC3);//伪彩图片
Scalar scalar = new Scalar(0);
Mat r = src.Clone();
Mat b = new Mat(src.Size(), OpenCvSharp.MatType.CV_8UC1, scalar);
Mat g = new Mat(src.Size(), OpenCvSharp.MatType.CV_8UC1, scalar);
Cv2.Merge(new Mat[] { b, g, r }, dst);//合成
蓝色伪彩,
将 Cv2.Merge(new Mat[] { b, g, r }, dst); 改成
Cv2.Merge(new Mat[] { r, g, b }, dst);
绿色伪彩
将 Cv2.Merge(new Mat[] { b, g, r }, dst); 改成
Cv2.Merge(new Mat[] { b, r, g }, dst);