2012-01-25 12 views
1

私は画像処理の初心者です。EmguCVやその他のテクニックを使用して画像に効果を追加する方法を知りたいのですが、Microsoft LifeCamのように(例:頭部に名前が表示されています)画像に効果を加える方法

おかげさまで、よろしくお願いいたします。

更新は::私は今、私は画像をドラウする関数currentFrame.Draw(...)を使用していたコードという点で

顔認識のx86

で働いています。 今、私は現在の画像で新しいビットマップ画像を追加したいが、それは私に例外を示している。私は画像myimg.Add()良いスタートがドキュメントを読むことであろう

答えて

2

で行います

OpenCV: The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' 

だから、何でも。

私はEmgu CVを使用していますが、人物の顔の長方形を返す顔検出モジュールがあります。 (Haar Cascades)

この情報を取得したら、画像を顔の相対位置で画像の上に配置するのは簡単です。

ライブラリは目の検出もサポートしているので、上記と同じ方法でメガネを描くことができます。

非常に使いやすく、ドキュメントも優れているので、そこから始めます。

更新:

私は画像内のすべての顔を検出し、その位置で長方形のリストを返す(Emgu CV)を使用するコードを発見しました。 (悪いコードの品質をお許しください)

また、必要に応じてパラメータを微調整する必要があります。

public List<Rectangle> detect(Bitmap inputImage) 
     { 
      inImage = new Image<Bgr, byte>(inputImage); 
      grayImage = inImage.Convert<Gray, Byte>(); 

      List<Rectangle> faceRects = new List<Rectangle>(); 

      var faces = grayImage.DetectHaarCascade(haar, 1.1, 1, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(inImage.Width, inImage.Height))[0]; 

      grayImage.Dispose(); 

      foreach (var face in faces) 
      { 
       faceRects.Add(face.rect);     
      } 

      inImage.Dispose(); 
      return faceRects; 
     } 
+1

私はEMGUで提供されている例も見ていますが、ほとんどの基本をカバーしています。あなたが持っている問題を解決するためにここで答えたいくつかの質問とcodeprojectのようなサイトでインターネット上のチュートリアルがますます多くあります。ここから始めてください:http://www.codeproject.com/KB/cs/EMGU_Image_Processing.aspx乾杯 – Chris

+0

@Tom Price、@ Chris。ありがとうございます。画像/ビットマップ画像と重なる他の機能があります。メイン画像上に表示されます。 (つまり、Image .Draw()関数のように、他のオプションがあります) –

関連する問題