IplImage red = Cv.CreateImage(new CvSize(src.Width, src.Height), BitDepth.U8, 1);
IplImage green = Cv.CreateImage(new CvSize(src.Width, src.Height), BitDepth.U8, 1);
IplImage blue = Cv.CreateImage(new CvSize(src.Width, src.Height), BitDepth.U8, 1);
Cv.Split(src, blue, green, red, null);
IplImage dst = Cv.CreateImage(new CvSize(src.Width, src.Height), src.Depth, src.NChannels);
unsafe
{
byte* ptrR = (byte*)red.ImageData;
byte* ptrG = (byte*)green.ImageData;
byte* ptrB = (byte*)blue.ImageData;
for (y = 0; y < src.Height; y++)
{
for (x = 0; x < src.Width; x++)
{
ptrG[y * red.WidthStep + x] = 0x00;
}
}
}
Cv.Merge(blue, green, red, null, dst);