Selaa lähdekoodia

refine edgescore function

Dr-Swopt 1 kuukausi sitten
vanhempi
commit
75313dd9f5

+ 34 - 19
src/main/java/com/example/EventHandler.java

@@ -16,6 +16,8 @@ import com.example.types.FingerprintCompareListItem;
 import com.example.types.PersonFingerprintData;
 import com.example.types.VerificationResult;
 import static com.example.utils.JavaResponse.buildJavaResponse;
+
+import com.example.utils.CheckEdgeScore;
 import com.example.utils.TransparencyContents;
 import com.example.utils.Verification;
 import com.machinezoo.sourceafis.FingerprintImage;
@@ -82,10 +84,10 @@ public class EventHandler {
                     return handleRegistration(id, imageBase64, fpTemplateList, personInfo, fingerPosition);
                 case "verification":
                     return handleVerification(id, imageBase64, fpTemplateList, personInfo, fingerPosition);
-                case "qualityassurance":
+                case "quality assurance":
                     return handleQualityAssurance(id, imageBase64, fpTemplateList, personInfo, fingerPosition);
-                case "updateRegisteredFingerprints":
-                    return updateRegisteredFingerprints(id, fpTemplateList);
+                case "populate registered prints":
+                    return populateRegisteredPrints(id, fpTemplateList);
                 default:
                     // Unknown command fallback
                     JSONObject unknown = new JSONObject();
@@ -116,29 +118,29 @@ public class EventHandler {
             }
 
             // Calculate edge scores to determine fingerprint quality
-            edgeScore.set(TransparencyContents.calculateEdgeScore(imageBytes));
+            edgeScore = CheckEdgeScore.calculateEdgeScore(imageBytes);
 
             // If no existing templates are provided, register the new one
             if (templateArray == null || templateArray.length <= 0 && registeredFingerprints.length <= 0) {
                 // Register this new template
-                String response = buildJavaResponse(id, "Registration", "Success", "No existing templates. Registered as new.", probeTemplate, 100.0, edgeScore.get(), personInfo, fingerPosition);
+                String response = buildJavaResponse(id, "Registration", "Success", "No existing templates. Registered as new.", probeTemplate, 100.0, edgeScore, personInfo, fingerPosition);
                 return response.toString();  // Return the response as a JSON string
             }
 
             VerificationResult matchedPerson = Verification.verifyFingeprint(probeTemplate, templateArray, registeredFingerprints);
             // Return response based on score
             if (matchedPerson != null) { // Match found
-                String response = buildJavaResponse(id, "Registration", "Registered", "Existing Fingerprint template found for " + matchedPerson + "!", probeTemplate, matchedPerson.getScore(), edgeScore.get(), personInfo, fingerPosition);
+                String response = buildJavaResponse(id, "Registration", "Registered", "Existing Fingerprint template found for " + matchedPerson + "!", probeTemplate, matchedPerson.getScore(), edgeScore, personInfo, fingerPosition);
                 return response;
             } else {
                 // Register new template
-                String response = buildJavaResponse(id, "Registration", "Success", "New fingerprint template constructed.", probeTemplate, 100.0, edgeScore.get(), personInfo, fingerPosition);
+                String response = buildJavaResponse(id, "Registration", "Success", "New fingerprint template constructed.", probeTemplate, 100.0, edgeScore, personInfo, fingerPosition);
                 return response.toString();
             }
 
         } catch (Exception e) {
             // Handle errors during registration
-            String errorResponse = buildJavaResponse(id, "Registration", "Failed", "Template Construction Failed: " + e.getMessage(), null, 0.0, 0, personInfo, fingerPosition);
+            String errorResponse = buildJavaResponse(id, "Registration", "Failed", "Template Construction Failed: " + e.getMessage(), null, 0.0, null, personInfo, fingerPosition);
             return errorResponse.toString();
         }
     }
@@ -157,20 +159,20 @@ public class EventHandler {
             FingerprintTemplate probeTemplate = new FingerprintTemplate(new FingerprintImage(imageBytes));
 
             // Calculate edge scores to determine fingerprint quality
-            edgeScore.set(TransparencyContents.calculateEdgeScore(imageBytes));
+            edgeScore = CheckEdgeScore.calculateEdgeScore(imageBytes);
 
             VerificationResult matchedPerson = Verification.verifyFingeprint(probeTemplate, templateArray, registeredFingerprints);
 
             // Return response based on score
             if (matchedPerson != null) { // Match found
-                return buildJavaResponse(id, "Verification", "Registered", "Existing Fingerprint template found for " + matchedPerson.getName() + "!", probeTemplate, matchedPerson.getScore(), edgeScore.get(), personInfo, fingerPosition).toString().toString();
+                return buildJavaResponse(id, "Verification", "Registered", "Existing Fingerprint template found for " + matchedPerson.getName() + "!", probeTemplate, matchedPerson.getScore(), null, personInfo, fingerPosition).toString().toString();
             } else {
                 // Register new template
-                return buildJavaResponse(id, "Verification", "Not Registered", "Fingerprint Data Not found.", probeTemplate, 0, 0, personInfo, fingerPosition);
+                return buildJavaResponse(id, "Verification", "Not Registered", "Fingerprint Data Not found.", probeTemplate, 0, null, personInfo, fingerPosition);
             }
 
         } catch (Exception e) {
-            String errorResponse = buildJavaResponse(id, "Verification", "Failed", "Verification operation faulty...", null, 0, 0, personInfo, fingerPosition); // defaul value
+            String errorResponse = buildJavaResponse(id, "Verification", "Failed", "Verification operation faulty...", null, 0, null, personInfo, fingerPosition); // defaul value
             return errorResponse.toString();
         }
     }
@@ -189,31 +191,44 @@ public class EventHandler {
             FingerprintTemplate probeTemplate = new FingerprintTemplate(new FingerprintImage(imageBytes));
 
             // Calculate edge scores to determine fingerprint quality
-            edgeScore.set(TransparencyContents.calculateEdgeScore(imageBytes));
-            System.out.println("Edge Score " + edgeScore);
+            edgeScore = CheckEdgeScore.calculateEdgeScore(imageBytes);
 
             VerificationResult matchedPerson = Verification.verifyFingeprint(probeTemplate, templateArray, registeredFingerprints);
 
             // Return response based on score
             if (matchedPerson != null) { // Match found
-                return buildJavaResponse(id, "QualityAssurance", "Registered", "Registered fingeprint. ", null, 0, edgeScore.get(), personInfo, fingerPosition).toString();
+                return buildJavaResponse(id, "Quality Assurance", "Registered", "Registered fingeprint. ", null, 0, edgeScore, personInfo, fingerPosition).toString();
             } else {
-                return buildJavaResponse(id, "QualityAssurance", "Not Registered", "New Fingerprint detected...", probeTemplate, 100, edgeScore.get(), personInfo, fingerPosition).toString();
+                return buildJavaResponse(id, "Quality Assurance", "Not Registered", "New Fingerprint detected...", probeTemplate, 100, edgeScore, personInfo, fingerPosition).toString();
             }
 
         } catch (Exception e) {
             // Handle errors during checking
-            String errorResponse = buildJavaResponse(id, "QualityAssurance", "Failed", "Unable to produce Edge score... " + e.getMessage(), null, 0.0, 0, personInfo, fingerPosition);
+            String errorResponse = buildJavaResponse(id, "Quality Assurance", "Failed", "Unable to produce Edge score... " + e.getMessage(), null, 0.0, null, personInfo, fingerPosition);
             return errorResponse.toString();
         }
     }
 
-    public static String updateRegisteredFingerprints(String id, FingerprintCompareListItem[] fpTemplateList) {
+    public static String populateRegisteredPrints(String id, FingerprintCompareListItem[] fpTemplateList) {
         try {
             return "response here for now...";
         } catch (Exception e) {
             return "error response here for now...";
         }
     }
-
+    // Static helper method to use this class easily
+
+    // public static AtomicInteger CheckEdgeScore.calculateEdgeScore(byte[] imageBytes) {
+    //     AtomicInteger edgeScore = new AtomicInteger();
+    //     try (TransparencyContents transparency = new TransparencyContents()) {
+    //         // FingerprintTemplate probe = new FingerprintTemplate(new FingerprintImage(imageBytes));
+    //         transparency.accepts("edge-table");
+    //         transparency.take("edge-table", "application/cbor", imageBytes);
+    //         // System.out.println(imageBytes);
+    //         edgeScore.set(transparency.countEdgeNumber());
+    //     } catch (Exception e) {
+    //         System.out.println("Error calculating edge score: " + e.getMessage());
+    //     }
+    //     return edgeScore;
+    // }
 }

+ 25 - 0
src/main/java/com/example/utils/CheckEdgeScore.java

@@ -0,0 +1,25 @@
+package com.example.utils;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import com.machinezoo.sourceafis.FingerprintImage;
+import com.machinezoo.sourceafis.FingerprintTemplate;
+
+public class CheckEdgeScore {
+    // Static helper method to use this class easily
+    
+    public static AtomicInteger calculateEdgeScore(byte[] imageBytes) {
+        try (TransparencyContents transparency = new TransparencyContents()) {
+            AtomicInteger edgeScore = new AtomicInteger();
+            FingerprintTemplate probe = new FingerprintTemplate(new FingerprintImage(imageBytes));
+            transparency.accepts("edge-table");
+            transparency.take("edge-table", "application/cbor", imageBytes);
+            edgeScore.set(transparency.countEdgeNumber());
+            System.out.println("EdgeScore: " + edgeScore);
+            return edgeScore;
+        } catch (Exception e) {
+            System.out.println("Error calculating edge score: " + e.getMessage());
+            return null;
+        }
+    }
+}

+ 6 - 5
src/main/java/com/example/utils/JavaResponse.java

@@ -1,6 +1,7 @@
 package com.example.utils;
 
 import java.util.Base64;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import com.example.types.Fingerprint;
 import com.example.types.PersonFingerprintData;
@@ -15,10 +16,10 @@ public class JavaResponse {
     private String message;
     private PersonFingerprintData data;
     private Double score;
-    private Integer edgeScore;
+    private AtomicInteger edgeScore;
 
     // Constructor
-    public JavaResponse(String id, String operation, String status, String message, PersonFingerprintData data, Double score, Integer edgeScore) {
+    public JavaResponse(String id, String operation, String status, String message, PersonFingerprintData data, Double score, AtomicInteger edgeScore) {
         // logic here
         this.id = id;
         this.operation = operation;
@@ -78,11 +79,11 @@ public class JavaResponse {
         this.score = score;
     }
 
-    public Integer getEdgeScore() {
+    public AtomicInteger getEdgeScore() {
         return edgeScore;
     }
 
-    public void setEdgeScore(Integer edgeScore) {
+    public void setEdgeScore(AtomicInteger edgeScore) {
         this.edgeScore = edgeScore;
     }
 
@@ -93,7 +94,7 @@ public class JavaResponse {
             String message,
             FingerprintTemplate fingerprintTemplate,
             double score,
-            int edgeScore,
+            AtomicInteger edgeScore,
             PersonFingerprintData personInfo,
             int fingerPosition) {
 

+ 0 - 14
src/main/java/com/example/utils/TransparencyContents.java

@@ -41,18 +41,4 @@ public class TransparencyContents extends FingerprintTransparency {
     public Integer countEdgeNumber() {
         return edgeNumber;
     }
-
-    // Static helper method to use this class easily
-    public static Integer calculateEdgeScore(byte[] imageBytes) {
-        Integer edgeScore = null;
-        try (TransparencyContents transparency = new TransparencyContents()) {
-            // FingerprintTemplate probe = new FingerprintTemplate(new FingerprintImage(imageBytes));
-            transparency.accepts("edge-table");
-            transparency.take("edge-table", "application/cbor", imageBytes);
-            edgeScore = transparency.countEdgeNumber();
-        } catch (Exception e) {
-            System.out.println("Error calculating edge score: " + e.getMessage());
-        }
-        return edgeScore;
-    }
 }

+ 13 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -1 +1,14 @@
+com\example\Main.class
 com\example\ClientHandler.class
+com\example\types\FingerprintCompareListItem.class
+com\example\TCPServer.class
+com\example\utils\TransparencyContents.class
+com\example\utils\Verification.class
+com\example\TCPClient.class
+com\example\types\PersonFingerprintData.class
+com\example\types\Fingerprint.class
+com\example\types\VerificationResult.class
+com\example\EventHandler.class
+com\example\utils\JavaResponse.class
+com\example\utils\CheckEdgeScore.class
+com\example\utils\MonitorMemory.class

+ 1 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -7,6 +7,7 @@ E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main
 E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\types\FingerprintCompareListItem.java
 E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\types\PersonFingerprintData.java
 E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\types\VerificationResult.java
+E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\utils\CheckEdgeScore.java
 E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\utils\JavaResponse.java
 E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\utils\MonitorMemory.java
 E:\Task\Fingerprint\microservices\libs\java\FingerprintDataVerification\src\main\java\com\example\utils\TransparencyContents.java