mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-20 00:51:41 +00:00
Potential fix for floating point crash with sliders
This commit is contained in:
@@ -12,9 +12,9 @@ public class Pipeline {
|
||||
public List<Integer> value = Arrays.asList(50, 255);
|
||||
public boolean erode = false;
|
||||
public boolean dilate = false;
|
||||
public List<Integer> area = Arrays.asList(0, 100);
|
||||
public List<Integer> ratio = Arrays.asList(0, 20);
|
||||
public List<Integer> extent = Arrays.asList(0, 100);
|
||||
public List<Double> area = Arrays.asList(0.0, 100.0);
|
||||
public List<Double> ratio = Arrays.asList(0.0, 20.0);
|
||||
public List<Double> extent = Arrays.asList(0.0, 100.0);
|
||||
public int is_binary = 0;
|
||||
public String sort_mode = "Largest";
|
||||
public String target_group = "Single";
|
||||
|
||||
@@ -21,6 +21,9 @@ public class CameraManager {
|
||||
|
||||
private static final Path CamConfigPath = Paths.get(SettingsManager.SettingsPath.toString(), "Cams");
|
||||
public static HashMap<String, Integer> CameraPorts = new HashMap<>();
|
||||
|
||||
private static HashMap<String, Camera> AllCamerasByName = new HashMap<>();
|
||||
|
||||
static HashMap<String, UsbCameraInfo> AllUsbCameraInfosByName = new HashMap<>() {{
|
||||
var suffix = 0;
|
||||
for (var info : UsbCamera.enumerateUsbCameras()) {
|
||||
@@ -36,7 +39,6 @@ public class CameraManager {
|
||||
}
|
||||
}
|
||||
}};
|
||||
private static HashMap<String, Camera> AllCamerasByName = new HashMap<>();
|
||||
|
||||
public static HashMap<String, Camera> getAllCamerasByName() {
|
||||
return AllCamerasByName;
|
||||
|
||||
@@ -53,12 +53,14 @@ public class CVProcess {
|
||||
return FoundContours;
|
||||
}
|
||||
|
||||
List<MatOfPoint> FilterContours(List<MatOfPoint> InputContours, List<Integer> area, List<Integer> ratio, List<Integer> extent) {
|
||||
List<MatOfPoint> FilterContours(List<MatOfPoint> InputContours, List<Double> area, List<Double> ratio, List<Double> extent) {
|
||||
for (MatOfPoint Contour : InputContours) {
|
||||
try {
|
||||
var contourArea = Imgproc.contourArea(Contour);//TODO change scaling
|
||||
int targetArea = (int) ((((float) contourArea) / CamVals.ImageArea) * 100);
|
||||
if (targetArea < area.get(0) || targetArea > area.get(1)) {
|
||||
double contourArea = Imgproc.contourArea(Contour); //TODO change scaling
|
||||
double targetArea = (contourArea / CamVals.ImageArea) * 100;
|
||||
double minArea = Math.pow(area.get(0), 4);
|
||||
double maxArea = Math.pow(area.get(1), 4);
|
||||
if (targetArea < minArea || targetArea > maxArea) {
|
||||
continue;
|
||||
}
|
||||
var rect = Imgproc.minAreaRect(new MatOfPoint2f(Contour.toArray()));
|
||||
|
||||
Reference in New Issue
Block a user