如何在emgu中分离RGB图像的通道?

时间:2018-11-14 19:09:59

标签: image-processing emgucv

我需要将RGB图像分成3个通道。换句话说,我需要执行以下操作的代码。

Image<Bgr, Byte> imgBgr = CvInvoke.Imread("Im.jpg").ToImage<Bgr, Byte>();
Mat blue = imgBgr.BlueChannel;
Mat green = imgBgr.GreenChannel;
Mat red = imgBgr.RedChannel;

谢谢!

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。

  1. 使用imgBgr.Split()。它返回一个由3个灰度图像组成的数组,每个图像代表原始图像的一个彩色通道。

  2. 使用imgBgr.Sub(color)。它将从原始图像中减去颜色。例如,如果只想获得红色,则除去绿色和蓝色,imgBgr.Sub(new Rgb(0, 255, 255))等。