Trial 11022025

This commit is contained in:
2025-02-11 09:10:36 +07:00
parent 30ef123832
commit 00f9852fa8
29 changed files with 596 additions and 281 deletions

View File

@@ -12,6 +12,8 @@ import org.tinylog.Logger;
import java.util.ArrayList;
import java.util.List;
import static Config.SomeCodes.IsInsideRect;
public class Detectors {
public static CascadeClassifier frontalfaceDetector;
private static CascadeClassifier eyeDetector;
@@ -20,7 +22,18 @@ public class Detectors {
private static CascadeClassifier palmDetector;
private static CascadeClassifier fistDetector;
private static double scaleFactor = 1.1;
private final static int minNeighbors = 3;
private final static int flags = 0;
private static Size FaceminSize;
private static Size FacemaxSize;
private static final int EyetoFaceRatio = 6;
private static Size EyeminSize;
private static Size EyemaxSize;
public static void LoadAllDetectors(){
LoadFrontalFaceDetector();
LoadEyeDetector();
@@ -146,10 +159,7 @@ public class Detectors {
dr.setFace(face);
if (eyes!=null && eyes.size()>=2){
for(Rect eye : eyes.get()){
if (eye.x() < face.x() || eye.y() < face.y() || eye.x() + eye.width() > face.x() + face.width() || eye.y() + eye.height() > face.y() + face.height()){
continue;
}
dr.AddEye(eye);
if (IsInsideRect(eye, face)) dr.AddEye(eye);
}
}
result.add(dr);
@@ -169,10 +179,7 @@ public class Detectors {
dr.setFace(face);
if (eyes!=null && eyes.size()>0){
for(Rect eye : eyes.get()){
if (eye.x() < face.x() || eye.y() < face.y() || eye.x() + eye.width() > face.x() + face.width() || eye.y() + eye.height() > face.y() + face.height()){
continue;
}
dr.AddEye(eye);
if (IsInsideRect(eye, face)) dr.AddEye(eye);
}
}
result.add(dr);
@@ -183,32 +190,43 @@ public class Detectors {
private static double scaleFactor = 1.1;
private final static int minNeighbors = 3;
private final static int flags = 0;
private static Size FaceminSize = new Size(200,200);
private static Size FacemaxSize = new Size(500,500);
private static final int EyetoFaceRatio = 6;
private static Size EyeminSize = new Size(FaceminSize.width()/EyetoFaceRatio,FaceminSize.height()/EyetoFaceRatio);
private static Size EyemaxSize = new Size(FacemaxSize.width()/EyetoFaceRatio,FacemaxSize.height()/EyetoFaceRatio);
public static void setScaleFactor(double value){
if (scaleFactor!=value) scaleFactor = value;
}
public static void setFaceMinSize(int value){
if (FaceminSize.width()!=value || FaceminSize.height()!=value) {
if (FaceminSize!=null){
if (FaceminSize.width()!=value || FaceminSize.height()!=value) {
FaceminSize = new Size(value, value);
EyeminSize = new Size(value/EyetoFaceRatio, value/EyetoFaceRatio);
System.out.println("FaceMinSize changed to : " + FaceminSize.width());
System.out.println("EyeMinSize changed to : " + EyeminSize.width());
}
} else {
FaceminSize = new Size(value, value);
EyeminSize = new Size(value/EyetoFaceRatio, value/EyetoFaceRatio);
System.out.println("FaceMinSize created with value : " + FaceminSize.width());
System.out.println("EyeMinSize created with value : " + EyeminSize.width());
}
}
public static void setFaceMaxSize(int value){
if (FacemaxSize.width()!=value || FacemaxSize.height()!=value) {
if (FacemaxSize!=null){
if (FacemaxSize.width()!=value || FacemaxSize.height()!=value) {
FacemaxSize = new Size(value, value);
EyemaxSize = new Size(value/EyetoFaceRatio, value/EyetoFaceRatio);
System.out.println("FaceMaxSize changed to : " + FacemaxSize.width());
System.out.println("EyeMaxSize changed to : " + EyemaxSize.width());
}
} else {
FacemaxSize = new Size(value, value);
EyemaxSize = new Size(value/EyetoFaceRatio, value/EyetoFaceRatio);
System.out.println("FaceMaxSize created with value : " + FacemaxSize.width());
System.out.println("EyeMaxSize created with value : " + EyemaxSize.width());
}
}