diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index c081683e8a6dd12a1a645411d4d3c06bc1c9899c..5a8e5f9cf6dcf38c4e6d5ddfde5866b84c191938 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -2,12 +2,12 @@ <project version="4"> <component name="deploymentTargetSelector"> <selectionStates> - <SelectionState runConfigName="MainActivity"> + <SelectionState runConfigName="app"> <option name="selectionMode" value="DROPDOWN" /> - <DropdownSelection timestamp="2024-12-05T10:04:46.998092100Z"> + <DropdownSelection timestamp="2024-12-15T17:00:55.472861300Z"> <Target type="DEFAULT_BOOT"> <handle> - <DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\melvi\.android\avd\Pixel_9_Pro_XL_API_35.avd" /> + <DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\Prosp\.android\avd\Medium_Phone_API_35.avd" /> </handle> </Target> </DropdownSelection> diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ecd50f02b65093c34f22e87f347bab2b30fa3eae..cb865f697f47f6843c977b82522f285cde326243 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,6 @@ <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> - <option name="testRunner" value="CHOOSE_PER_TEST" /> <option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="gradleJvm" value="jbr-17" /> <option name="modules"> diff --git a/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java b/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java new file mode 100644 index 0000000000000000000000000000000000000000..a23697cd73f2b89794485f176c7dc6b9609d55b2 --- /dev/null +++ b/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java @@ -0,0 +1,5 @@ +package com.example.myapplication; + +public class NoSpeciesRecognizedException extends Exception{ + +} diff --git a/app/src/main/java/com/example/myapplication/PhotoPage.java b/app/src/main/java/com/example/myapplication/PhotoPage.java index fb56c744069fa6e074cceacf564feaca08d73ec9..6db91977fec58413c59e63c8221a51ba0766f9d3 100644 --- a/app/src/main/java/com/example/myapplication/PhotoPage.java +++ b/app/src/main/java/com/example/myapplication/PhotoPage.java @@ -110,6 +110,7 @@ public class PhotoPage extends Fragment { if (cameraImage != null) { imageView.setImageBitmap(cameraImage); processImage(cameraImage); // Pass the image for further processing + showOverlayForm(); } break; @@ -130,7 +131,7 @@ public class PhotoPage extends Fragment { } break; } - showOverlayForm(); + } private void processImage(Bitmap bitmap) { @@ -154,6 +155,8 @@ public class PhotoPage extends Fragment { } catch (IOException e) { throw new RuntimeException(e); + } catch (NoSpeciesRecognizedException e) { + textPredictionOutput.setText("Cette espèce n'est pas encore répertoriée."); } } diff --git a/app/src/main/java/com/example/myapplication/TestModeleTflite.java b/app/src/main/java/com/example/myapplication/TestModeleTflite.java index 35cbd3b8f3ba56c8aec77d8cd3d846f2667f5619..0a1c267ea8d76698decbf36d0631270914e86d0b 100644 --- a/app/src/main/java/com/example/myapplication/TestModeleTflite.java +++ b/app/src/main/java/com/example/myapplication/TestModeleTflite.java @@ -246,22 +246,24 @@ public class TestModeleTflite { return annotateImage(inputImage, boxes); } - public OutputPredictedImage recognizeSpeciesClass(Bitmap inputImage){ + public OutputPredictedImage recognizeSpeciesClass(Bitmap inputImage) throws NoSpeciesRecognizedException { //ArrayList<String> speciesNames = new ArrayList<>(); Map<String, Integer> predictionResults = new HashMap<>(); TensorBuffer outputBuffer = predict(inputImage); List<BoundingBox> boxes = processOutput(outputBuffer); - for(BoundingBox box:boxes){ - if(predictionResults.containsKey(box.clsName)){ - int previousNumber = predictionResults.get(box.clsName); - predictionResults.put(box.clsName, previousNumber + 1); - }else{ - predictionResults.put(box.clsName, 1); - } + if(boxes != null){ + for(BoundingBox box:boxes){ + if(predictionResults.containsKey(box.clsName)){ + int previousNumber = predictionResults.get(box.clsName); + predictionResults.put(box.clsName, previousNumber + 1); + }else{ + predictionResults.put(box.clsName, 1); + } - } - Bitmap annotatedImage = annotateImage(inputImage, boxes); - return new OutputPredictedImage(annotatedImage, predictionResults); + } + Bitmap annotatedImage = annotateImage(inputImage, boxes); + return new OutputPredictedImage(annotatedImage, predictionResults); + }else throw new NoSpeciesRecognizedException(); }