类 Face
- java.lang.Object
-
- org.opencv.face.Face
-
public class Face extends java.lang.Object
-
-
构造函数摘要
构造函数 构造函数 描述 Face()
-
方法摘要
所有方法 静态方法 具体方法 修饰符和类型 方法 描述 static FacemarkcreateFacemarkAAM()static FacemarkcreateFacemarkKazemi()static FacemarkcreateFacemarkLBF()static voiddrawFacemarks(Mat image, Mat points)用于绘制检测到的面部特征点。static voiddrawFacemarks(Mat image, Mat points, Scalar color)用于绘制检测到的面部特征点。static booleangetFacesHAAR(Mat image, Mat faces, java.lang.String face_cascade_name)默认人脸检测器。此函数主要由 Facemark 算法的实现使用。static booleanloadDatasetList(java.lang.String imageList, java.lang.String annotationList, java.util.List<java.lang.String> images, java.util.List<java.lang.String> annotations)用于加载训练图像和标注文件路径列表的工具函数。static booleanloadFacePoints(java.lang.String filename, Mat points)用于从给定文件加载面部特征点信息的工具函数。static booleanloadFacePoints(java.lang.String filename, Mat points, float offset)用于从给定文件加载面部特征点信息的工具函数。static booleanloadTrainingData(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints)用于从数据集中加载面部特征点信息的工具函数。static booleanloadTrainingData(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints, float offset)用于从数据集中加载面部特征点信息的工具函数。static booleanloadTrainingData(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints)用于从单个文件加载面部特征点数据集的工具函数。static booleanloadTrainingData(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim)用于从单个文件加载面部特征点数据集的工具函数。static booleanloadTrainingData(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim, float offset)用于从单个文件加载面部特征点数据集的工具函数。static booleanloadTrainingData(java.util.List<java.lang.String> filename, java.util.List<MatOfPoint2f> trainlandmarks, java.util.List<java.lang.String> trainimages)此函数从包含相应图像名称和特征点的 .txt 文件中提取训练数据。
-
-
-
方法详情
-
createFacemarkAAM
public static Facemark createFacemarkAAM()
-
createFacemarkLBF
public static Facemark createFacemarkLBF()
-
createFacemarkKazemi
public static Facemark createFacemarkKazemi()
-
getFacesHAAR
public static boolean getFacesHAAR(Mat image, Mat faces, java.lang.String face_cascade_name)
默认人脸检测器。此函数主要由 Facemark 算法的实现使用。建议最终用户使用 Facemark::getFaces 函数,该函数可以手动定义并通过 Facemark::setFaceDetector 绕过算法。- 参数
image- 要处理的输入图像。faces- 函数的输出,表示检测到的人脸的感兴趣区域。每个面部都存储在 cv::Rect 容器中。<B>用法示例</B>std::vector<cv::Rect> faces; CParams params("haarcascade_frontalface_alt.xml"); cv::face::getFaces(frame, faces, ¶ms); 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- 自动生成- 返回
- 自动生成
-
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)用于加载训练图像和标注文件路径列表的工具函数。- 参数
imageList- 指定的文件包含训练图像的路径。annotationList- 指定的文件包含训练标注的路径。images- 加载的训练图像路径。annotations- 加载的标注文件路径。用法示例: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);- 返回
- 自动生成
-
loadTrainingData
public static boolean loadTrainingData(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim, float offset)用于从单个文件加载面部特征点数据集的工具函数。- 参数
filename- 包含数据集信息的文件的文件名。每一行包含图像的文件名,后跟面部特征点 x 和 y 值对,用空格分隔。示例/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- 一个向量,其中每个元素代表数据集中图像的文件名。默认情况下不加载图像以节省内存。facePoints- 加载的所有训练数据的特征点。delim- 各个元素之间的分隔符,默认值为空格。offset- 用于调整加载点的偏移值。<B>用法示例</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);- 返回
- 自动生成
-
loadTrainingData
public static boolean loadTrainingData(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints, char delim)用于从单个文件加载面部特征点数据集的工具函数。- 参数
filename- 包含数据集信息的文件的文件名。每一行包含图像的文件名,后跟面部特征点 x 和 y 值对,用空格分隔。示例/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- 一个向量,其中每个元素代表数据集中图像的文件名。默认情况下不加载图像以节省内存。facePoints- 加载的所有训练数据的特征点。delim- 各个元素之间的分隔符,默认值为空格。<B>用法示例</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);- 返回
- 自动生成
-
loadTrainingData
public static boolean loadTrainingData(java.lang.String filename, java.util.List<java.lang.String> images, Mat facePoints)用于从单个文件加载面部特征点数据集的工具函数。- 参数
filename- 包含数据集信息的文件的文件名。每一行包含图像的文件名,后跟面部特征点 x 和 y 值对,用空格分隔。示例/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- 一个向量,其中每个元素代表数据集中图像的文件名。默认情况下不加载图像以节省内存。facePoints- 加载的所有训练数据的特征点。<B>用法示例</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);- 返回
- 自动生成
-
loadTrainingData
public static boolean loadTrainingData(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints, float offset)用于从数据集中加载面部特征点信息的工具函数。- 参数
imageList- 包含训练数据集中图像文件名列表的文件。groundTruth- 包含存储特征点信息的文件名列表的文件。每个文件中的内容应遵循标准格式(参见 face::loadFacePoints)。images- 一个向量,其中每个元素代表数据集中图像的文件名。默认情况下不加载图像以节省内存。facePoints- 加载的所有训练数据的特征点。offset- 用于调整加载点的偏移值。<B>用法示例</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);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.jpgpoints_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- 返回
- 自动生成
-
loadTrainingData
public static boolean loadTrainingData(java.lang.String imageList, java.lang.String groundTruth, java.util.List<java.lang.String> images, Mat facePoints)用于从数据集中加载面部特征点信息的工具函数。- 参数
imageList- 包含训练数据集中图像文件名列表的文件。groundTruth- 包含存储特征点信息的文件名列表的文件。每个文件中的内容应遵循标准格式(参见 face::loadFacePoints)。images- 一个向量,其中每个元素代表数据集中图像的文件名。默认情况下不加载图像以节省内存。facePoints- 加载所有训练数据的标志点。<B>使用方法示例</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);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.jpgpoints_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- 返回
- 自动生成
-
loadTrainingData
public static boolean loadTrainingData(java.util.List<java.lang.String> filename, java.util.List<MatOfPoint2f> trainlandmarks, java.util.List<java.lang.String> trainimages)此函数从包含对应图像名称和标志点的 .txt 文件中提取训练数据。每个文件的首行应给出其标志点在文件中描述的图像路径。随后各行应为图像中标志点的坐标,即每行格式为 x,y,其中 x 表示标志点的 x 坐标,y 表示标志点的 y 坐标。参考文件请参见<a href="http://www.ifp.illinois.edu/~vuongle2/helen/">HELEN 数据集</a>- 参数
filename- 一个包含 .txt 文件名称的 cv::String 类型向量。trainlandmarks- 一个 cv::Point2f 类型向量,用于存储所有图像的形状或标志点。trainimages- 一个 cv::String 类型向量,用于存储已跟踪标志点的图像名称。- 返回
- 布尔值。成功读取数据时返回 true,否则返回 false。
-
loadFacePoints
public static boolean loadFacePoints(java.lang.String filename, Mat points, float offset)用于从给定文件加载面部特征点信息的工具函数。- 参数
filename- 包含面部标志点数据的 .txt 文件的文件名。points- 加载的面部标志点。offset- 用于调整加载点的偏移值。<B>使用方法示例</B>std::vector<Point2f> points; face::loadFacePoints("filename.txt", points, 0.0f);标注文件应遵循默认格式:version: 1 n_points: 68 { 212.716603 499.771793 230.232816 566.290071 ... }其中 n_points 为考虑的点数,每个点由其 x 和 y 坐标表示。- 返回
- 自动生成
-
loadFacePoints
public static boolean loadFacePoints(java.lang.String filename, Mat points)用于从给定文件加载面部特征点信息的工具函数。- 参数
filename- 包含面部标志点数据的 .txt 文件的文件名。points- 加载的面部标志点。<B>使用方法示例</B>std::vector<Point2f> points; face::loadFacePoints("filename.txt", points, 0.0f);标注文件应遵循默认格式:version: 1 n_points: 68 { 212.716603 499.771793 230.232816 566.290071 ... }其中 n_points 为考虑的点数,每个点由其 x 和 y 坐标表示。- 返回
- 自动生成
-
drawFacemarks
public static void drawFacemarks(Mat image, Mat points, Scalar color)
用于绘制检测到的面部特征点。- 参数
image- 要处理的输入图像。points- 包含将要绘制的点的数据。color- 点的颜色,以 cv::Scalar 表示的 BGR 格式。<B>使用方法示例</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)
用于绘制检测到的面部特征点。- 参数
image- 要处理的输入图像。points- 包含将要绘制的点的数据。<B>使用方法示例</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)); }
-
-