Add use case view
This commit is contained in:
97
src/main/java/services/UseCaseService.java
Normal file
97
src/main/java/services/UseCaseService.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user