Add some time measurements

This commit is contained in:
2026-10-04 17:10:33 +02:00
parent 541a1440a3
commit f5231a0ff5
2 changed files with 26 additions and 3 deletions

View File

@@ -40,7 +40,7 @@ public class UseCasePresenter {
Image image1 = loadImage(NOISE_1_IMAGE);
Image image2 = loadImage(NOISE_2_IMAGE);
Image reduced1 = measureTime("Reduction 1", () -> service.reduceNoise(image1, 0.5f, 7));
Image reduced1 = measureTime("Reduction 1", () -> service.reduceNoise(image1, 1f, 7));
Image reduced2 = measureTime("Reduction 2", () -> service.reduceNoise(image2, 1f, 5));
Image[] results = { reduced1, reduced2 };
@@ -81,7 +81,7 @@ public class UseCasePresenter {
public void computeToastOutline() {
Image image = loadImage(TOAST_IMAGE);
Image result = service.detectToastContours(image);
Image result = measureTime("Toast outlines", () -> service.detectToastContours(image));
view.updateToastContours(result);
}

View File

@@ -119,7 +119,30 @@ public class UseCaseService {
}
public Image detectToastContours(Image image) {
return extractToastContours(image);
Image smoothed = BasicMorphology.opening(image, 3).toImage();
GrayScaleMatrix dilated = BasicMorphology.dilation(smoothed, 3);
GrayScaleMatrix eroded = BasicMorphology.erosion(smoothed, 3);
double[][] dilatedData = dilated.getRawData();
double[][] erodedData = eroded.getRawData();
double[][] contours = new double[image.getHeight()][image.getWidth()];
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
contours[y][x] = dilatedData[y][x] - erodedData[y][x];
}
}
Image binaryContours = Thresholding.simpleThreshold(new GrayScaleMatrix(contours).toImage(), 40).toImage();
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
if (binaryContours.getPixel(x, y).grayValue() > 0) {
image.setPixelColor(x, y, 0, 255, 0);
}
}
}
return image;
}
private Image equalizeRgb(Image image) {