import org.opencv.core.*;importorg.opencv.highgui.HighGui;importorg.opencv.imgcodecs.Imgcodecs;importorg.opencv.imgproc.Imgproc;importorg.opencv.objdetect.CascadeClassifier;importorg.opencv.videoio.VideoCapture;importorg.opencv.videoio.VideoWriter;importorg.opencv.videoio.Videoio;importjava.util.Arrays;/*** @Title: Opencv 图片人脸识别、实时摄像头人脸识别、视频文件人脸识别
* @Description: OpenCV-4.1.1 测试文件
* @date: 2019年8月19日 17:17:48
*@version: V-1.0.0*/
public classFaceVideo {//初始化人脸探测器
staticCascadeClassifier faceDetector;static int i = 0;static{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
faceDetector= new CascadeClassifier("M:\\opencv\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml");
}public static voidmain(String[] args) {//1- 从摄像头实时人脸识别,识别成功保存图片到本地
getVideoFromCamera();//writeVideo();//2- 从本地视频文件中识别人脸//getVideoFromFile();//3- 本地图片人脸识别,识别成功并保存人脸图片到本地
/*face();*/
//4- 比对本地2张图的人脸相似度 (越接近1越相似)
/*String basePicPath = "D:\\Documents\\Pictures\\";
double compareHist = compare_image(basePicPath + "fc.jpg", basePicPath + "fc_1.jpg");
System.out.println(compareHist);
if (compareHist > 0.72) {
System.out.println("人脸匹配");
} else {
System.out.println("人脸不匹配");
}*/}/*** OpenCV-4.1.1 从摄像头实时读取
*
*@return: void
* @date: 2019年8月19日 17:20:13*/
public static voidgetVideoFromCamera() {//1 如果要从摄像头获取视频 则要在 VideoCapture 的构造方法写 0
VideoCapture capture = new VideoCapture(0);
Mat video= newMat();int index = 0;if(captu