Improvement 21/01/2025

This commit is contained in:
2025-01-21 13:13:39 +07:00
parent f80662a453
commit a60fe56510
4 changed files with 58 additions and 53 deletions

View File

@@ -1,13 +1,16 @@
package id.co.gtc.erhacam;
import Config.SomeCodes;
import org.bytedeco.opencv.opencv_core.RectVector;
import org.bytedeco.opencv.opencv_core.Size;
import org.bytedeco.opencv.opencv_core.UMat;
import org.bytedeco.opencv.opencv_objdetect.CascadeClassifier;
import org.bytedeco.opencv.opencv_objdetect.CvHaarClassifierCascade;
import org.tinylog.Logger;
public class Detectors {
public static CascadeClassifier faceDetector;
public static CascadeClassifier eyeDetector;
public static void LoadFaceDetector(){
String filename = SomeCodes.ExtractResource("/haarcascade_profileface.xml");
if (filename!=null) {
@@ -24,6 +27,27 @@ public class Detectors {
} else Logger.error("Unable to extract face detector file");
}
static double scaleFactor = 1.1;
static int minNeighbors = 3;
static int flags = 0;
static Size minSize = new Size(30, 30);
static Size maxSize = new Size(300, 300);
/**
* Detect Face from Mat
* @param graymat Mat in Gray Scale
* @return RectVector if face detected, otherwise false
*/
public static RectVector DetectFace(UMat graymat){
if (faceDetector!=null){
RectVector face = new RectVector();
//faceDetector.detectMultiScale(graymat, face);
faceDetector.detectMultiScale(graymat, face, scaleFactor, minNeighbors,flags, minSize, maxSize);
return face;
}
return null;
}
public static void LoadEyeDetector(){
String filename = SomeCodes.ExtractResource("/haarcascade_eye_tree_eyeglasses.xml");
if (filename!=null) {
@@ -41,4 +65,13 @@ public class Detectors {
} else Logger.error("Unable to extract eye detector file");
}
public static RectVector DetectEye(UMat graymat){
if (eyeDetector!=null){
RectVector eye = new RectVector();
eyeDetector.detectMultiScale(graymat, eye);
return eye;
}
return null;
}
}