Package org.opencv.face

## Class Face

- java.lang.Object
- - org.opencv.face.Face

-     public class Face
      extends java.lang.Object

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Face()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Facemark` | `createFacemarkAAM()` |
    `static Facemark` | `createFacemarkKazemi()` |
    `static Facemark` | `createFacemarkLBF()` |
    `static void` | `drawFacemarks​(Mat image, Mat points)` | Utility to draw the detected facial landmark points
    `static void` | `drawFacemarks​(Mat image, Mat points, Scalar color)` | Utility to draw the detected facial landmark points
    `static boolean` | `getFacesHAAR​(Mat image, Mat faces, java.lang.String face_cascade_name)` | Default face detector This function is mainly utilized by the implementation of a Facemark Algorithm.
    `static boolean` | `loadDatasetList​(java.lang.String imageList, java.lang.String annotationList, java.util.List<java.lang.String> images, java.util.List<java.lang.String> annotations)` | A utility to load list of paths to training image and annotation file.
    `static boolean` | `loadFacePoints​(java.lang.String filename, Mat points)` | A utility to load facial landmark information from a given file.
    `static boolean` | `loadFacePoints​(java.lang.String filename, Mat points, float offset)` | A utility to load facial landmark information from a given file.
    `static boolean` | `loadTrainingData​(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints)` | A utility to load facial landmark information from the dataset.
    `static boolean` | `loadTrainingData​(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints, float offset)` | A utility to load facial landmark information from the dataset.
    `static boolean` | `loadTrainingData​(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints)` | A utility to load facial landmark dataset from a single file.
    `static boolean` | `loadTrainingData​(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim)` | A utility to load facial landmark dataset from a single file.
    `static boolean` | `loadTrainingData​(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim, float offset)` | A utility to load facial landmark dataset from a single file.
    `static boolean` | `loadTrainingData​(java.util.List<java.lang.String> filename, java.util.List<MatOfPoint2f> trainlandmarks, java.util.List<java.lang.String> trainimages)` | This function extracts the data for training from .txt files which contains the corresponding image name and landmarks.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Face

          public Face()

  - ### Method Detail

    - #### createFacemarkAAM

          public static Facemark createFacemarkAAM()

    - #### createFacemarkKazemi

          public static Facemark createFacemarkKazemi()

    - #### createFacemarkLBF

          public static Facemark createFacemarkLBF()

    - #### getFacesHAAR

          public static boolean getFacesHAAR​(Mat image,
                                             Mat faces,
                                             java.lang.String face_cascade_name)

      Default face detector This function is mainly utilized by the implementation of a Facemark Algorithm. End users are advised to use function Facemark::getFaces which can be manually defined and circumvented to the algorithm by Facemark::setFaceDetector.
      Parameters:
        `image` - The input image to be processed.
        `faces` - Output of the function which represent region of interest of the detected faces. Each face is stored in cv::Rect container. <B>Example of usage</B> `std::vector<cv::Rect> faces; CParams params("haarcascade_frontalface_alt.xml"); cv::face::getFaces(frame, faces, &params); for(int j=0;j<faces.size();j++){ cv::rectangle(frame, faces[j], cv::Scalar(255,0,255)); } cv::imshow("detection", frame);`
        `face_cascade_name` - automatically generated
      Returns:
        automatically generated

    - #### loadDatasetList

          public static boolean loadDatasetList​(java.lang.String imageList,
                                                java.lang.String annotationList,
                                                java.util.List<java.lang.String> images,
                                                java.util.List<java.lang.String> annotations)

      A utility to load list of paths to training image and annotation file.
      Parameters:
        `imageList` - The specified file contains paths to the training images.
        `annotationList` - The specified file contains paths to the training annotations.
        `images` - The loaded paths of training images.
        `annotations` - The loaded paths of annotation files. Example of usage: `String imageFiles = "images_path.txt"; String ptsFiles = "annotations_path.txt"; std::vector<String> images_train; std::vector<String> landmarks_train; loadDatasetList(imageFiles,ptsFiles,images_train,landmarks_train);`
      Returns:
        automatically generated

    - #### loadFacePoints

          public static boolean loadFacePoints​(java.lang.String filename,
                                               Mat points,
                                               float offset)

      A utility to load facial landmark information from a given file.
      Parameters:
        `filename` - The filename of file contains the facial landmarks data.
        `points` - The loaded facial landmark points.
        `offset` - An offset value to adjust the loaded points. <B>Example of usage</B> `std::vector<Point2f> points; face::loadFacePoints("filename.txt", points, 0.0f);` The annotation file should follow the default format which is `version: 1 n_points: 68 { 212.716603 499.771793 230.232816 566.290071 ... }` where n_points is the number of points considered and each point is represented as its position in x and y.
      Returns:
        automatically generated

    - #### loadFacePoints

          public static boolean loadFacePoints​(java.lang.String filename,
                                               Mat points)

      A utility to load facial landmark information from a given file.
      Parameters:
        `filename` - The filename of file contains the facial landmarks data.
        `points` - The loaded facial landmark points. <B>Example of usage</B> `std::vector<Point2f> points; face::loadFacePoints("filename.txt", points, 0.0f);` The annotation file should follow the default format which is `version: 1 n_points: 68 { 212.716603 499.771793 230.232816 566.290071 ... }` where n_points is the number of points considered and each point is represented as its position in x and y.
      Returns:
        automatically generated

    - #### loadTrainingData

          public static boolean loadTrainingData​(java.lang.String filename,
                                                 java.util.List<java.lang.String> images,
                                                 Mat facePoints,
                                                 char delim,
                                                 float offset)

      A utility to load facial landmark dataset from a single file.
      Parameters:
        `filename` - The filename of a file that contains the dataset information. Each line contains the filename of an image followed by pairs of x and y values of facial landmarks points separated by a space. Example `/home/user/ibug/image_003_1.jpg 336.820955 240.864510 334.238298 260.922709 335.266918 ... /home/user/ibug/image_005_1.jpg 376.158428 230.845712 376.736984 254.924635 383.265403 ...`
        `images` - A vector where each element represent the filename of image in the dataset. Images are not loaded by default to save the memory.
        `facePoints` - The loaded landmark points for all training data.
        `delim` - Delimiter between each element, the default value is a whitespace.
        `offset` - An offset value to adjust the loaded points. <B>Example of usage</B> `cv::String imageFiles = "../data/images_train.txt"; cv::String ptsFiles = "../data/points_train.txt"; std::vector<String> images; std::vector<std::vector<Point2f> > facePoints; loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);`
      Returns:
        automatically generated

    - #### loadTrainingData

          public static boolean loadTrainingData​(java.lang.String filename,
                                                 java.util.List<java.lang.String> images,
                                                 Mat facePoints,
                                                 char delim)

      A utility to load facial landmark dataset from a single file.
      Parameters:
        `filename` - The filename of a file that contains the dataset information. Each line contains the filename of an image followed by pairs of x and y values of facial landmarks points separated by a space. Example `/home/user/ibug/image_003_1.jpg 336.820955 240.864510 334.238298 260.922709 335.266918 ... /home/user/ibug/image_005_1.jpg 376.158428 230.845712 376.736984 254.924635 383.265403 ...`
        `images` - A vector where each element represent the filename of image in the dataset. Images are not loaded by default to save the memory.
        `facePoints` - The loaded landmark points for all training data.
        `delim` - Delimiter between each element, the default value is a whitespace. <B>Example of usage</B> `cv::String imageFiles = "../data/images_train.txt"; cv::String ptsFiles = "../data/points_train.txt"; std::vector<String> images; std::vector<std::vector<Point2f> > facePoints; loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);`
      Returns:
        automatically generated

    - #### loadTrainingData

          public static boolean loadTrainingData​(java.lang.String filename,
                                                 java.util.List<java.lang.String> images,
                                                 Mat facePoints)

      A utility to load facial landmark dataset from a single file.
      Parameters:
        `filename` - The filename of a file that contains the dataset information. Each line contains the filename of an image followed by pairs of x and y values of facial landmarks points separated by a space. Example `/home/user/ibug/image_003_1.jpg 336.820955 240.864510 334.238298 260.922709 335.266918 ... /home/user/ibug/image_005_1.jpg 376.158428 230.845712 376.736984 254.924635 383.265403 ...`
        `images` - A vector where each element represent the filename of image in the dataset. Images are not loaded by default to save the memory.
        `facePoints` - The loaded landmark points for all training data. <B>Example of usage</B> `cv::String imageFiles = "../data/images_train.txt"; cv::String ptsFiles = "../data/points_train.txt"; std::vector<String> images; std::vector<std::vector<Point2f> > facePoints; loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);`
      Returns:
        automatically generated

    - #### loadTrainingData

          public static boolean loadTrainingData​(java.lang.String imageList,
                                                 java.lang.String groundTruth,
                                                 java.util.List<java.lang.String> images,
                                                 Mat facePoints,
                                                 float offset)

      A utility to load facial landmark information from the dataset.
      Parameters:
        `imageList` - A file contains the list of image filenames in the training dataset.
        `groundTruth` - A file contains the list of filenames where the landmarks points information are stored. The content in each file should follow the standard format (see face::loadFacePoints).
        `images` - A vector where each element represent the filename of image in the dataset. Images are not loaded by default to save the memory.
        `facePoints` - The loaded landmark points for all training data.
        `offset` - An offset value to adjust the loaded points. <B>Example of usage</B> `cv::String imageFiles = "../data/images_train.txt"; cv::String ptsFiles = "../data/points_train.txt"; std::vector<String> images; std::vector<std::vector<Point2f> > facePoints; loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);` example of content in the images_train.txt `/home/user/ibug/image_003_1.jpg /home/user/ibug/image_004_1.jpg /home/user/ibug/image_005_1.jpg /home/user/ibug/image_006.jpg` example of content in the points_train.txt `/home/user/ibug/image_003_1.pts /home/user/ibug/image_004_1.pts /home/user/ibug/image_005_1.pts /home/user/ibug/image_006.pts`
      Returns:
        automatically generated

    - #### loadTrainingData

          public static boolean loadTrainingData​(java.lang.String imageList,
                                                 java.lang.String groundTruth,
                                                 java.util.List<java.lang.String> images,
                                                 Mat facePoints)

      A utility to load facial landmark information from the dataset.
      Parameters:
        `imageList` - A file contains the list of image filenames in the training dataset.
        `groundTruth` - A file contains the list of filenames where the landmarks points information are stored. The content in each file should follow the standard format (see face::loadFacePoints).
        `images` - A vector where each element represent the filename of image in the dataset. Images are not loaded by default to save the memory.
        `facePoints` - The loaded landmark points for all training data. <B>Example of usage</B> `cv::String imageFiles = "../data/images_train.txt"; cv::String ptsFiles = "../data/points_train.txt"; std::vector<String> images; std::vector<std::vector<Point2f> > facePoints; loadTrainingData(imageFiles, ptsFiles, images, facePoints, 0.0f);` example of content in the images_train.txt `/home/user/ibug/image_003_1.jpg /home/user/ibug/image_004_1.jpg /home/user/ibug/image_005_1.jpg /home/user/ibug/image_006.jpg` example of content in the points_train.txt `/home/user/ibug/image_003_1.pts /home/user/ibug/image_004_1.pts /home/user/ibug/image_005_1.pts /home/user/ibug/image_006.pts`
      Returns:
        automatically generated

    - #### loadTrainingData

          public static boolean loadTrainingData​(java.util.List<java.lang.String> filename,
                                                 java.util.List<MatOfPoint2f> trainlandmarks,
                                                 java.util.List<java.lang.String> trainimages)

      This function extracts the data for training from .txt files which contains the corresponding image name and landmarks. The first file in each file should give the path of the image whose landmarks are being described in the file. Then in the subsequent lines there should be coordinates of the landmarks in the image i.e each line should be of the form x,y where x represents the x coordinate of the landmark and y represents the y coordinate of the landmark. For reference you can see the files as provided in the <a href="http://www.ifp.illinois.edu/~vuongle2/helen/">HELEN dataset</a>
      Parameters:
        `filename` - A vector of type cv::String containing name of the .txt files.
        `trainlandmarks` - A vector of type cv::Point2f that would store shape or landmarks of all images.
        `trainimages` - A vector of type cv::String which stores the name of images whose landmarks are tracked
      Returns:
        A boolean value. It returns true when it reads the data successfully and false otherwise

    - #### drawFacemarks

          public static void drawFacemarks​(Mat image,
                                           Mat points,
                                           Scalar color)

      Utility to draw the detected facial landmark points
      Parameters:
        `image` - The input image to be processed.
        `points` - Contains the data of points which will be drawn.
        `color` - The color of points in BGR format represented by cv::Scalar. <B>Example of usage</B> `std::vector<Rect> faces; std::vector<std::vector<Point2f> > landmarks; facemark->getFaces(img, faces); facemark->fit(img, faces, landmarks); for(int j=0;j<rects.size();j++){ face::drawFacemarks(frame, landmarks[j], Scalar(0,0,255)); }`

    - #### drawFacemarks

          public static void drawFacemarks​(Mat image,
                                           Mat points)

      Utility to draw the detected facial landmark points
      Parameters:
        `image` - The input image to be processed.
        `points` - Contains the data of points which will be drawn. <B>Example of usage</B> `std::vector<Rect> faces; std::vector<std::vector<Point2f> > landmarks; facemark->getFaces(img, faces); facemark->fit(img, faces, landmarks); for(int j=0;j<rects.size();j++){ face::drawFacemarks(frame, landmarks[j], Scalar(0,0,255)); }`