我遇到了一些使用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相關的東西。告訴我你會遇到麻煩,我會盡力幫助你。 –