在C#中使用由Emgu.Cv设计的分水岭功能

时间:2011-11-04 16:42:20

标签: c# emgucv

我已将Emgu.Cv文件添加到我的项目中,我想使用它的分水岭功能,但我不知道如何使用它。任何人都可以帮助我并解释函数,它的论点是它的回归吗?

2 个答案:

答案 0 :(得分:4)

这是一些使用emgucv在通用输入图像上使用分水岭功能的香草代码:

public void TestWaterShed()
          {  
             Image<Bgr, Byte> image = new Image<Bgr, byte>("myImage.jpg");                 
             Image<Gray, Int32> marker = new Image<Gray, Int32>(image.Width, image.Height);
             Rectangle rect = image.ROI;
             marker.Draw(
                new CircleF(
                   new PointF(rect.Left + rect.Width / 2.0f, rect.Top + rect.Height / 2.0f),
                   (float)(Math.Min(image.Width, image.Height) / 4.0f)),
                new Gray(255),
                0);
             CvInvoke.cvWatershed(image, marker);
          }

答案 1 :(得分:1)

查看以下问题的答案:

watershed function provided by EmguCv

您需要将掩码文件的值设置为零(使用cvZero)。使用第二个参考圆(最好使用不同的灰色值),然后在将其转换为灰度值图像后从掩码文件中检索结果。