简单emgucv运用private void button14_Click(object sender, EventArgs e)
{
Mat channel = new Mat("hua.jpg", Emgu.CV.CvEnum.LoadImageType.AnyColor);
VectorOfMat channels = new VectorOfMat();//创建VectorOfMat类型储存分离后的图像
CvInvoke.Split(channel, channels);//分离通道
Mat B_channel = channels.GetInputOutputArray().GetMat(0);
Mat C_channel = channels.GetInputOutputArray().GetMat(1);
Mat D_channel = channels.GetInputOutputArray().GetMat(2);
imageBox1.Image = channel;
imageBox3.Image = B_channel;
imageBox4.Image = C_channel;
imageBox5.Image = D_channel;
//反向通道
Mat dst = new Mat();
VectorOfMat mv = new VectorOfMat();
mv.Push(B_channel);
mv.Push(C_channel);
mv.Push(D_channel);
CvInvoke.Merge(mv, dst);
imageBox6.Image = dst;
/*
public static void Split(IInputArray src,IOutputArray mv);//把IInputArraysrc
分成多个通道。
参数解析:
IInputArray src:需要进行分离的图像。
IOutputArray mv:分离后得到的图像数组,一般为VectorOfMat类型。
VectorOfMat类型在命名空间Emgu.CV.Util中。
*/
}
private void button15_Click(object sender, EventArgs e)
{
VectorOfMat channels = new VectorOfMat();
Mat matB = new Mat("hua.jpg", LoadImageType.Grayscale);//创建灰色图
Mat matG = new Mat(matB.Size, DepthType.Cv8U, 1);//创建其他通道
Mat matR = new Mat(matB.Size, DepthType.Cv8U, 1);
channels.Push(matB);
channels.Push(matG);
channels.Push(matR);
//channels.Push(matR);
Mat dst = new Mat();
CvInvoke.Merge(channels, dst);
imageBox3.Image = matB;
imageBox4.Image = matG;
imageBox5.Image = matR;
imageBox6.Image = dst;
/*
public static void Merge(IInputArrayOfArrays mv,IOutputArray dst);//通道合成。
参数解析:
IInputArrayOfArrays mv,:需要合成的数组通道一般为VectorOfMat类型。
IOutputArray dst:输出合成图像。
*/
}
评论