This documentation is for the old version. Go to the latest Graphics Mill docs

Manual Red-Eye Removal

Semiautomatic red-eye removal algorithm works fine for most photos, but sometimes it can get confused. It may happen when the photo has low contrast, skin tint is reddish, or the user selected the face inaccurately. To allow the user to remove red eyes even if semiautomatic mode fails, you can use the manual mode as a fallback option.

In manual mode the user needs to click each eye. Red-Eye Removal searches boundaries of the red area and fix color here.

Note

You still need to provide the facial rectangle. It is used to estimate the eye square to avoid "fixing" red areas outside of the eye.

This way the user should make two steps:

  1. Select face:
    Face selection.
  2. Click the red eye:
    Eye selection.

In addition to RedEyeRemoval.FaceRegion property, you should also specify the RedEyeRemoval.EyePoint property. You should pass coordinates of mouse click there.

Here is a code which removes red-eye effect in the manual mode:

Visual Basic
Dim redEyeRemoval As New Aurigma.GraphicsMill.Transforms.RedEyeRemoval
redEyeRemoval.Mode = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Manual
redEyeRemoval.FaceRegion = faceRect
redEyeRemoval.EyePoint = eyePoint
redEyeRemoval.ApplyTransform(sourceBitmap)
C#
Aurigma.GraphicsMill.Transforms.RedEyeRemoval redEyeRemoval = 
    new Aurigma.GraphicsMill.Transforms.RedEyeRemoval();
redEyeRemoval.Mode = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Manual;
redEyeRemoval.FaceRegion = faceRect;
redEyeRemoval.EyePoint = eyePoint;
redEyeRemoval.ApplyTransform(sourceBitmap);

You may find it inconvenient to have the user to select a face before clicking red eyes. From the point of view of usability it is acceptable if you are re-using the facial rectangle which user specifies for the semiautomatic mode. Most natural way to do it is to organize the user interface as a wizard. These topics discuss how do it:

Adding Red-Eye Removal Functionality to Windows Applications
Adding Red-Eye Removal Functionality to AJAX Applications

See Also

Manual