2012-01-25 110 views
1

我是圖像處理新手。我想知道如何使用EmguCV或任何其他技術將效果添加到圖像。就像Microsoft LifeCam。(例如,顯示帽子上的頭,在頭上顯示名稱等)如何爲圖像添加效果

請幫助,在此先感謝。

更新 ::我現在用的代碼

臉部識別86

我使用的功能currentFrame.Draw(...),以卓爾圖像加工。 現在我想添加新的位圖圖像與當前圖像,但它顯示我的例外。

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' 

所以任何事情我會用映像myimg.Add()

回答

2

一個良好的開端將是閱讀文檔做的。

我已經使用了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.I想知道是否有其他函數會重疊圖像/位圖圖像在主要圖像上。 (即圖像 .Draw()函數,還有其他選項) –