Improvement 21/01/2025
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user