我需要将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;
谢谢!
答案 0 :(得分:1)
有两种方法可以做到这一点。
使用imgBgr.Split()
。它返回一个由3个灰度图像组成的数组,每个图像代表原始图像的一个彩色通道。
使用imgBgr.Sub(color)
。它将从原始图像中减去颜色。例如,如果只想获得红色,则除去绿色和蓝色,imgBgr.Sub(new Rgb(0, 255, 255))
等。