3

私は Emgu CV の使い方を学んでいて、この Open CV の例に出くわしました: http://aishack.in/tutorials/tracking-colored-objects-in-opencv/

CvInRangeこのコードを作成して、Emgu で関数を再作成したい:

// create upper & lower limit (HSV)
MCvScalar botLimit = new MCvScalar(20, 100, 100);
MCvScalar uprLimit = new MCvScalar(30, 255, 255);

// prepare the destination
Image<Hsv, byte> imageHSVDest = new Image<Hsv, byte>(imageWidth, imageHeight);

// 
CvInvoke.cvInRange(imageHSV, botLimit, uprLimit, imageHSVDest);

このエラー メッセージがCvInvoke.cvInRange()生成されます (vs2010 の場合):

エラー 1 'Emgu.CV.CvInvoke.cvInRange(System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)' に最適なオーバーロードされたメソッド マッチには無効な引数があります
エラー 2 引数 2: 'Emgu.CV から変換できません.Structure.MCvScalar' から 'System.IntPtr' エラー 3 引数 3: 'Emgu.CV.Structure.MCvScalar' から 'System.IntPtr' に変換できません

データ型が一致していないようです。EmguMCvScalarIntPtr無駄に変換する方法を検索しました。

MCvScalar例からOpenCV を翻訳して使用しましcvScalar(20, 100, 100)た。これは間違っていますか?

4

2 に答える 2