给单个通道赋值伪彩,用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);
本文介绍了如何使用OpenCV的Cv2.Merge函数快速为图像单个通道赋予特定颜色伪彩,包括红色、蓝色和绿色,通过实例展示了如何更改通道顺序实现不同效果。
1218

被折叠的 条评论
为什么被折叠?



