类 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 文件中提取训练数据。
-
-
-
方法详细信息
-
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- 一个 cv::String 类型的向量,包含 .txt 文件的名称。trainlandmarks- 一个 cv::Point2f 类型的向量,它将存储所有图像的形状或地标。trainimages- 一个 cv::String 类型的向量,它存储跟踪地标的图像的名称- 返回
- 一个布尔值。成功读取数据时返回 true,否则返回 false
-
loadFacePoints
public static boolean loadFacePoints(java.lang.String filename, Mat points, float offset)用于从给定文件加载面部特征点信息的实用工具。- 参数
filename- 包含面部地标数据的文件名。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- 包含面部地标数据的文件名。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- BGR 格式的点颜色,由 cv::Scalar 表示。 <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)); }
-
createFacemarkAAM
public static Facemark createFacemarkAAM()
-
createFacemarkLBF
public static Facemark createFacemarkLBF()
-
createFacemarkKazemi
public static Facemark createFacemarkKazemi()
-
-