C# 如何从图像中检测对象的数量?
我有一个windows窗体应用程序,我想从医学图像中计算对象的数量。比如说 我使用了一种算法,可以从图像中提取每个物体的轮廓C# 如何从图像中检测对象的数量?,c#,image,image-processing,emgucv,C#,Image,Image Processing,Emgucv,我有一个windows窗体应用程序,我想从医学图像中计算对象的数量。比如说 我使用了一种算法,可以从图像中提取每个物体的轮廓 private void findContoursToolStripMenuItem_Click(object sender, EventArgs e) { Image<Gray, byte> imgOutput = imgInput.Convert<Gray, byte>().ThresholdBinary(new Gra
private void findContoursToolStripMenuItem_Click(object sender, EventArgs e)
{
Image<Gray, byte> imgOutput = imgInput.Convert<Gray, byte>().ThresholdBinary(new Gray(100), new Gray(255));
Emgu.CV.Util.VectorOfVectorOfPoint contours = new Emgu.CV.Util.VectorOfVectorOfPoint();
Mat hier = new Mat();
Image<Gray, byte> imgout = new Image<Gray, byte>(imgInput.Width, imgInput.Height, new Gray(100));
CvInvoke.FindContours(imgOutput, contours, hier, Emgu.CV.CvEnum.RetrType.External, Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple);
CvInvoke.DrawContours(imgout, contours, -1, new MCvScalar(123, 0, 0));
pictureBox2.Image = imgout.Bitmap;
}
但我无法从图像中找出细胞的数量。有什么建议或算法我必须使用
我在EMGU文档中搜索,但没有找到任何我认为需要的函数
任何建议或回答都将得到奖励
如果你认为这太宽了,我不想要实现的算法。我只需要一些想法或我必须使用的算法的建议。
这可能有点基本和暴力,但如何在图像上选择一个接近绿色的随机点,然后有效地搜索具有相同颜色容差的“匹配”颜色。当你访问每个像素时,把它涂成黑色,这样你就不会再看它了,然后数一数你涂了多少像素。每次选择像素时,请确保它不是黑色的。一旦你找不到更多的点,如果黑色像素的数量大于公差,那么你只能找到“大”多边形,然后将其计入单元格的数量。你不是在几小时前发布了完全相同的问题吗?我想它被删除了,因为它太宽了。@HimBromBeere,我不想要实现的算法。我只需要一些想法或我必须使用的算法的建议。我认为这还不算太宽泛。这个问题有无数种可能的解决方案,但大多数解决方案都行不通。因此,我们需要做大量的工作来找到这个问题的好答案。因此它太宽了。那怎么帮不了你呢?@HimBromBeere,HNext不是等高线的属性。所以你提供的链接对我没有帮助