2012-01-25 12 views
1

Я новичок в обработке изображений. Я хочу знать, как я могу добавлять эффекты к изображению с помощью EmguCV или любой другой техники. Как и в Microsoft LifeCam. (Например, показывая шляпу на головка, показывающая название на голове и т. д.)Как добавить эффекты к изображению

Пожалуйста, помогите, заблаговременно.

Update :: Я сейчас работаю с кодом

распознавания лица x86

в том, что я использую функцию 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)

После того, как у вас есть эта информация, вы можете легко разместить изображение поверх изображения в месте относительно лица.

Библиотека также поддерживает обнаружение глаз, чтобы вы могли нарисовать очки, используя тот же метод, что и выше.

Это очень прост в использовании, и документация отличная, поэтому я бы начала там.

Update:

Я нашел код я использовал (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 хочу знать, что есть какая-либо другая функция, которая будет перекрывать изображение/растровое изображение над основным изображением. (например, Image . Функция Draw(), есть и другие возможности) –

Смежные вопросы