0

私はEmguCVを初めて使用します。アプリケーションにEmguCV2.4.2を使用しています。Seq(T).Itemプロパティを使用して等高線インデックスを見つけるのに問題があります。そのプロパティを等高線で使用すると、システムは次のようなエラーメッセージを送信しました。

Error 11 'Emgu.CV.Contour<System.Drawing.Point>' does not contain a definition for'Item' and no
extension method 'Item' accepting a first argument of type 'Emgu.CV.Contour<System.Drawing.Point>'
could be found (are you missing a using directive or an assembly reference?)    E:\TUGAS_AKHIR\headDetection\headDetection.cs   284 45  headDetection

ここでドキュメントを読みましたが、エラーが表示される理由がわかりません。これが私のコードです:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.CV.VideoSurveillance; 
using Emgu.CV.CvEnum; 
using Emgu.Util;
using Emgu.CV.Cvb;
using System.Collections;

//background subtraction 
...

//foreFrame is the result of background subtraction
 Contour<Point> contours = foreFrame.FindContours(
    CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
    RETR_TYPE.CV_RETR_EXTERNAL);

while (contours != null)
{
    int idx = contours.Item; //THE ERROR MESSAGE APPEARS HERE
        Console.WriteLine("contour index = {0}", idx);

    //next contour
    contours = contours.HNext;
}//endwhile

Seq(T).ItemプロパティまたはEmguCVの別のアプローチを使用して、等高線インデックスを見つける方法を教えてください。誰かがそれを詳しく説明してくれれば幸いです。

よろしくお願いします、David :)

4

1 に答える 1

1

emgu 2.4.2のドキュメントを見ると、ContourクラスにItemプロパティがないことがわかります。

あなたができる最も簡単なことは、現在のカウンターインデックスを示すループカウンターを使用し、ループ中にそれをインクリメントすることです:

int counter = 0;
while (contours != null)
{
    Console.WriteLine("contour index = {0}", counter);
    //next contour
    contours = contours.HNext; 
    counter++;
}
于 2013-01-09T14:10:07.850 に答える