我遇到了一些使用EmguCV从图像中提取斑点的问题。我在网上看到的所有东西都使用Contours对象,但我想这已经从EmguCV3.0中删除了?每次尝试使用它时我都会遇到异常情况。我还没有找到许多最新的/相关的SO主题,这些主题没有过时。查找图像中的最大斑点
基本上,我有一张叶子的照片。背景可能是白色,绿色,黑色等。我希望基本上移除背景,以便我可以在不干扰背景的情况下对叶子执行操作。我只是不知道我要去哪里错在这里:
Image<Bgr, Byte> Original = Core.CurrentLeaf.GetImageBGR;
Image<Gray, Byte> imgBinary = Original.Convert<Gray, Byte>();
imgBinary.PyrDown().PyrUp(); // Smoothen a little bit
imgBinary = imgBinary.ThresholdBinaryInv(new Gray(100), new Gray(255)); // Apply inverse suppression
// Now, copy pixels from original image that are black in the mask, to a new Mat. Then scan?
Image<Gray, Byte> imgMask;
imgMask = imgBinary.Copy(imgBinary);
CvInvoke.cvCopy(Original, imgMask, imgBinary);
VectorOfVectorOfPoint contoursDetected = new VectorOfVectorOfPoint();
CvInvoke.FindContours(imgBinary, contoursDetected, null, Emgu.CV.CvEnum.RetrType.List, Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple);
var contoursArray = new List<VectorOfPoint>();
int count = contoursDetected.Size;
for (int i = 0; i < count; i++)
{
using (VectorOfPoint currContour = contoursDetected[i])
{
contoursArray.Add(currContour);
}
}
有了这个,我得到一个黑色图像与白色线条点点。我已经来回绞尽脑汁,一直未能想出一些东西。任何指针将非常感激!
你能提供一些帮助,将其转换为C#吗?我了解python,但我遇到了转换为C#的问题,以便将其中的一部分适应于我的应用程序。 – Jerry
我只能帮助与c#中的opencv相关的东西。告诉我你会遇到麻烦,我会尽力帮助你。 –