changed all double and int data type to Number

added pipeline change handle in ui
This commit is contained in:
ori agranat
2019-10-14 23:35:29 +03:00
parent 221c1b7bfd
commit 91a1338022
6 changed files with 36 additions and 20 deletions

View File

@@ -8,14 +8,14 @@ public class Pipeline {
public int exposure = 50;
public int brightness = 50;
public Orientation orientation = Orientation.Normal;
public List<Integer> hue = Arrays.asList(50, 180);
public List<Integer> saturation = Arrays.asList(50, 255);
public List<Integer> value = Arrays.asList(50, 255);
public List<Number> hue = Arrays.asList(50, 180);
public List<Number> saturation = Arrays.asList(50, 255);
public List<Number> value = Arrays.asList(50, 255);
public boolean erode = false;
public boolean dilate = false;
public List<Float> area = Arrays.asList(0f, 100f);
public List<Float> ratio = Arrays.asList(0f, 20f);
public List<Integer> extent = Arrays.asList(0, 100);
public List<Number> area = Arrays.asList(0.0, 100.0);
public List<Number> ratio = Arrays.asList(0.0, 20.0);
public List<Number> extent = Arrays.asList(0, 100);
public boolean isBinary = false;
public SortMode sortMode = SortMode.Largest;
public TargetGroup targetGroup = TargetGroup.Single;

View File

@@ -54,7 +54,7 @@ public class CVProcess {
return foundContours;
}
List<MatOfPoint> filterContours(List<MatOfPoint> inputContours, List<Float> area, List<Float> ratio, List<Integer> extent) {
List<MatOfPoint> filterContours(List<MatOfPoint> inputContours, List<Number> area, List<Number> ratio, List<Number> extent) {
for (MatOfPoint Contour : inputContours) {
try {
double contourArea = Imgproc.contourArea(Contour);
@@ -67,14 +67,14 @@ public class CVProcess {
var rect = Imgproc.minAreaRect(new MatOfPoint2f(Contour.toArray()));
var targetFullness = contourArea;
double minExtent = (double) (extent.get(0) * rect.size.area()) / 100;
double maxExtent = (double) (extent.get(1) * rect.size.area()) / 100;
double minExtent = (double) (extent.get(0).doubleValue() * rect.size.area()) / 100;
double maxExtent = (double) (extent.get(1).doubleValue() * rect.size.area()) / 100;
if (targetFullness <= minExtent || contourArea >= maxExtent) {
continue;
}
Rect bb = Imgproc.boundingRect(Contour);
double aspectRatio = (bb.width / bb.height);
if (aspectRatio < ratio.get(0) || aspectRatio > ratio.get(1)) {
if (aspectRatio < ratio.get(0).doubleValue() || aspectRatio > ratio.get(1).doubleValue()) {
continue;
}
filteredContours.add(Contour);

View File

@@ -143,8 +143,8 @@ public class VisionProcess implements Runnable {
inputImage.copyTo(outputImage);
return pipelineResult;
}
Scalar hsvLower = new Scalar(currentPipeline.hue.get(0), currentPipeline.saturation.get(0), currentPipeline.value.get(0));
Scalar hsvUpper = new Scalar(currentPipeline.hue.get(1), currentPipeline.saturation.get(1), currentPipeline.value.get(1));
Scalar hsvLower = new Scalar(currentPipeline.hue.get(0).intValue(), currentPipeline.saturation.get(0).intValue(), currentPipeline.value.get(0).intValue());
Scalar hsvUpper = new Scalar(currentPipeline.hue.get(1).intValue(), currentPipeline.saturation.get(1).intValue(), currentPipeline.value.get(1).intValue());
cvProcess.hsvThreshold(inputImage, hsvThreshMat, hsvLower, hsvUpper, currentPipeline.erode, currentPipeline.dilate);