diff --git a/.classpath b/.classpath
deleted file mode 100644
index 92b9cb8..0000000
--- a/.classpath
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.gitignore b/.gitignore
index 0133c21..66c928e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,6 @@ hs_err_pid*
target
*log.txt
**/.vscode
+.classpath
+.settings
+.metadata
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index abdea9a..0000000
--- a/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding/=UTF-8
diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100644
index d4313d4..0000000
--- a/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.apt.aptEnabled=false
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 99a63d5..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,9 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
-org.eclipse.jdt.core.compiler.compliance=11
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
-org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=11
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index c88a90e..ebe4519 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -4,7 +4,7 @@
org.baxter.disco
ocr
Disco OCR Accuracy Over Life Testing
- 4.2.0
+ 4.3.1
Testing Discos for long-term accuracy, using automated optical character recognition.
Baxter International
diff --git a/finalisedJavaUML.xmi b/finalisedJavaUML.xmi
deleted file mode 100644
index 27b719c..0000000
--- a/finalisedJavaUML.xmi
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
-
- umbrello uml modeller 2.32.3 http://umbrello.kde.org
- 1.7.3
- UnicodeUTF8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index 71dc1f0..2a75adf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
org.baxter.disco
ocr
- 4.3.0
+ 4.3.1
jar
Disco OCR Accuracy Over Life Testing
Testing Discos for long-term accuracy, using automated optical character recognition.
diff --git a/src/main/java/org/baxter/disco/ocr/Cli.java b/src/main/java/org/baxter/disco/ocr/Cli.java
index 4d157e8..4a1f9b7 100644
--- a/src/main/java/org/baxter/disco/ocr/Cli.java
+++ b/src/main/java/org/baxter/disco/ocr/Cli.java
@@ -18,14 +18,14 @@ import java.util.concurrent.locks.ReentrantLock;
* classes).
*
* @author Blizzard Finnegan
- * @version 1.5.0, 10 Feb. 2023
+ * @version 1.6.0, 10 Feb. 2023
*/
public class Cli
{
/**
* Complete build version number
*/
- private static final String version = "4.3.0";
+ private static final String version = "4.3.1";
/**
* Currently saved iteration count.
@@ -777,6 +777,16 @@ public class Cli
while(!LOCK.tryLock()) {}
DataSaving.writeValues(i,resultMap,cameraToFile);
LOCK.unlock();
+
+ //LO detection and avoidance
+ for(Double result : resultMap.values())
+ {
+ if(result <= 1.0 || result >= 117.0)
+ {
+ fixture.goUp();
+ try{ Thread.sleep(20000); } catch(Exception e){ ErrorLogging.logError(e); }
+ }
+ }
//Clear the result map
//DO NOT CLEAR camera to file Map. This will change the order of the objects within it
resultMap.clear();
diff --git a/src/main/java/org/baxter/disco/ocr/MovementFacade.java b/src/main/java/org/baxter/disco/ocr/MovementFacade.java
index 5eea773..07d8bc8 100644
--- a/src/main/java/org/baxter/disco/ocr/MovementFacade.java
+++ b/src/main/java/org/baxter/disco/ocr/MovementFacade.java
@@ -1,7 +1,9 @@
package org.baxter.disco.ocr;
+//Standard imports
import java.util.concurrent.locks.Lock;
+//Pi4J imports
import com.pi4j.Pi4J;
import com.pi4j.context.Context;
import com.pi4j.io.gpio.digital.DigitalInput;
@@ -472,7 +474,7 @@ public class MovementFacade
if(runSwitchThread.isAlive())
{
exit = true;
- try{ Thread.sleep(100); } catch(Exception e){}
+ try{ Thread.sleep(500); } catch(Exception e){}
}
pi4j.shutdown();
}
@@ -502,8 +504,9 @@ public class MovementFacade
public void iterationMovement(boolean prime)
{
goUp();
- if(prime) pressButton();
+ //if(prime) pressButton();
goDown();
+ try{ Thread.sleep(100); } catch(Exception e){ ErrorLogging.logError(e); }
pressButton();
}
}
diff --git a/src/main/java/org/baxter/disco/ocr/OpenCVFacade.java b/src/main/java/org/baxter/disco/ocr/OpenCVFacade.java
index 38fc092..13c77bb 100644
--- a/src/main/java/org/baxter/disco/ocr/OpenCVFacade.java
+++ b/src/main/java/org/baxter/disco/ocr/OpenCVFacade.java
@@ -1,8 +1,6 @@
package org.baxter.disco.ocr;
-import java.util.Map;
-import java.util.Set;
-
+//Static imports for OpenCV
import static org.bytedeco.opencv.global.opencv_imgproc.CV_BGR2GRAY;
import static org.bytedeco.opencv.global.opencv_imgproc.THRESH_BINARY;
import static org.bytedeco.opencv.global.opencv_imgproc.cvtColor;
@@ -12,15 +10,21 @@ import static org.bytedeco.opencv.global.opencv_imgcodecs.cvSaveImage;
import static org.bytedeco.opencv.global.opencv_highgui.selectROI;
import static org.bytedeco.opencv.global.opencv_core.bitwise_and;
+//JavaCV imports
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.OpenCVFrameGrabber;
import org.bytedeco.javacv.OpenCVFrameConverter;
+
+//OpenCV imports
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.IplImage;
import org.bytedeco.opencv.opencv_core.Rect;
+//Standard imports
+import java.util.Map;
+import java.util.Set;
import java.io.File;
import java.time.LocalDateTime;
import java.util.ArrayList;
@@ -33,7 +37,7 @@ import java.util.List;
* Performs image capture, as well as image manipulation.
*
* @author Blizzard Finnegan
- * @version 2.0.0, 15 Feb. 2023
+ * @version 2.0.1, 15 Feb. 2023
*/
public class OpenCVFacade
{
@@ -422,11 +426,11 @@ public class OpenCVFacade
List imageList = takeBurst(cameraName, compositeFrames);
//Debug save of pre-processing image
- String fileLocation = ConfigFacade.getImgSaveLocation() + "/debug/"
- + ErrorLogging.fileDatetime.format(LocalDateTime.now()) +
- "." + cameraName + "-preProcess.jpg";
- cvSaveImage(fileLocation,MAT_CONVERTER.convertToIplImage(
- MAT_CONVERTER.convert(imageList.get(0))));
+ //String fileLocation = ConfigFacade.getImgSaveLocation() + "/debug/"
+ // + ErrorLogging.fileDatetime.format(LocalDateTime.now()) +
+ // "." + cameraName + "-preProcess.jpg";
+ //cvSaveImage(fileLocation,MAT_CONVERTER.convertToIplImage(
+ // MAT_CONVERTER.convert(imageList.get(0))));
ErrorLogging.logError("DEBUG: Size of output image list: " + imageList.size());
Mat finalImage = compose(imageList, threshold, crop, cameraName);
diff --git a/src/main/java/org/baxter/disco/ocr/TesseractFacade.java b/src/main/java/org/baxter/disco/ocr/TesseractFacade.java
index 8e678d6..cac5626 100644
--- a/src/main/java/org/baxter/disco/ocr/TesseractFacade.java
+++ b/src/main/java/org/baxter/disco/ocr/TesseractFacade.java
@@ -1,10 +1,16 @@
package org.baxter.disco.ocr;
+//Standard imports
import java.io.File;
import java.util.Scanner;
-import org.bytedeco.leptonica.PIX;
+//Static import of image reader
import static org.bytedeco.leptonica.global.leptonica.pixRead;
+
+//Import Tesseract-capable image class
+import org.bytedeco.leptonica.PIX;
+
+//Import Tesseract API
import org.bytedeco.tesseract.TessBaseAPI;
/**