基于java的OpenCV环境搭建(Windows平台上ecplise) https://blog..net/qq_32447301/article/details/78494913
https://download..net/download/qq_37996327/10504398 opencv下载地址 亲测可用
以下为java测试案例代码
package com.snail.util.opencv;
import java.io.File;
import java.util.ArrayList;
import org.apache.ibatis.migration.MigrationException;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
public class DetectImage {
// 学习SVM
public static String StudyXML = "E:\\opencv\\build\\x64\\vc14\\bin\\studyxml\\cascade.xml";
// 睡觉SVM
public static String SleepXML = "E:\\opencv\\build\\x64\\vc14\\bin\\xml\\cascade.xml";
// 玩手机SVM
public static String MobleXML = "E:\\opencv\\build\\x64\\vc14\\bin\\xml\\cascade.xml";
// 抽烟SVM haarcascade_upperbody.xml
public static String SmokeXML = "E:\\opencv\\sources\\data\\haarcascades\\haarcascade_upperbody.xml";
static{
// 载入opencv的库
System.out.println("加载opencv.dll库文件");
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
/**
*
* @param path 文件路径
* @param savePath 保存地址
* @param length 文件下的文件数量
* @param xmlPath xml的路径
*/
public static void detect(String path,String savePath,int length,String xmlPath){
System.out.println("Running DetectFace ... ");
// 从配置文件lbpcascade_frontalface.xml中创建一个人脸识别器,该文件位于opencv安装目录中
CascadeClassifier faceDetector = new CascadeClassifier(xmlPath);
CascadeClassifier face = new CascadeClassifier("E:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml");
//faceDetector.load();
Mat image = Imgcodecs.imread(path);
// 在图片中检测人脸
MatOfRect faceDetections = new MatOfRect();
//faceDetections.
//faceDetector.detectMultiScale(image, faceDetections);
faceDetector.detectMultiScale(image, faceDetections);
//faceDetector.
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
Rect[] rects = faceDetections.toArray();
//System.out.println("人脸检测完毕!画出矩形...");
for(int i = 0 ; i < rects.length ; i++){
Rect rect = rects[i];
Mat sub = image.submat(rect); //Mat sub = new Mat(image,rect);
Mat mat = new Mat();
Size size = new Size(300, 300);
Imgproc.resize(sub, mat, size);//将人脸进行截图并保存
//String outFile = savepath;
//截图
//Imgcodecs.imwrite("E:/image/conation"+"//"+length+".jpg", mat);
Imgcodecs.imwrite(savePath+"//"+length+".jpg", mat);
//Mat facemat = Imgcodecs.imread(savePath+"//"+length+".jpg");
//MatOfRect faceRect = new MatOfRect();
/*face.detectMultiScale(facemat, faceRect);
if(faceRect.toArray().length > 0){
}else{
File file = new Fil