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
私はopencvに関係するものだけを助けることができます。あなたが困っているコードの行を教えてください。私は助けようとします。 –