如何在 emgu 中分离 RGB 图像的通道?
how to separate the channels of an RGB image in emgu?
我需要将 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;
谢谢!
有两种方法可以做到这一点。
使用imgBgr.Split()
。它 returns 一个包含 3 个灰度图像的数组,每个图像代表原始图像的一个颜色通道。
使用imgBgr.Sub(color)
。它将从原始图像中减去颜色。例如,如果你只想得到红色,去掉绿色和蓝色,imgBgr.Sub(new Rgb(0, 255, 255))
等等。
我需要将 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;
谢谢!
有两种方法可以做到这一点。
使用
imgBgr.Split()
。它 returns 一个包含 3 个灰度图像的数组,每个图像代表原始图像的一个颜色通道。使用
imgBgr.Sub(color)
。它将从原始图像中减去颜色。例如,如果你只想得到红色,去掉绿色和蓝色,imgBgr.Sub(new Rgb(0, 255, 255))
等等。