Add use case view

This commit is contained in:
2026-10-04 11:57:35 +02:00
parent 275b1169c0
commit 114da44ff4
9 changed files with 405 additions and 2 deletions

View File

@@ -0,0 +1,97 @@
package services;
import domain.image.GrayScaleMatrix;
import domain.image.Image;
import domain.image.processing.filtering.GlobalLinearFiltering;
import domain.image.processing.morphology.ComplexMorphology;
import java.util.function.Supplier;
public class UseCaseService {
public Image reduceNoise(Image i0) {
GrayScaleMatrix m0 = i0.toGrayScale();
GrayScaleMatrix m1 = GlobalLinearFiltering.butterworthLowPassFiltering(m0, 10, 1);
Image i1 = m1.toImage();
return ComplexMorphology.medianFilter(i1, 9).toImage();
}
public Image[] equalizeHistogram(Image image) {
Image rgbEqualized = equalizeRgb(image);
Image luminanceEqualized = equalizeLuminance(image);
return new Image[]{rgbEqualized, luminanceEqualized};
}
public Image[] segmentPeas(Image image) {
Image bluePeas = extractBluePeas(image);
Image redPeas = extractRedPeas(image);
return new Image[]{bluePeas, redPeas};
}
public Image[] segmentBarnacles(Image image) {
Image largeBarnacles = extractLargeBarnacles(image);
Image smallBarnacles = extractSmallBarnacles(image);
return new Image[]{largeBarnacles, smallBarnacles};
}
public Image segmentTools(Image image) {
return extractTools(image);
}
public Image[] extractSpacecraft(Image spacecraftImage, Image planetImage) {
Image synthesis = createSynthesis(spacecraftImage, planetImage);
Image synthesis2 = addSpacecraftContour(synthesis);
return new Image[]{synthesis, synthesis2};
}
public Image detectToastContours(Image image) {
return extractToastContours(image);
}
private Image equalizeRgb(Image image) {
return image;
}
private Image equalizeLuminance(Image image) {
return image;
}
private Image extractBluePeas(Image image) {
return image;
}
private Image extractRedPeas(Image image) {
return image;
}
private Image extractLargeBarnacles(Image image) {
return image;
}
private Image extractSmallBarnacles(Image image) {
return image;
}
private Image extractTools(Image image) {
return image;
}
private Image createSynthesis(Image spacecraftImage, Image planetImage) {
return planetImage;
}
private Image addSpacecraftContour(Image synthesis) {
return synthesis;
}
private Image extractToastContours(Image image) {
return image;
}
public <T> long measureTime(Supplier<T> operation) {
long start = System.nanoTime();
operation.get();
return (System.nanoTime() - start) / 1_000_000;
}
}