Add some time measurements
This commit is contained in:
@@ -40,7 +40,7 @@ public class UseCasePresenter {
|
|||||||
Image image1 = loadImage(NOISE_1_IMAGE);
|
Image image1 = loadImage(NOISE_1_IMAGE);
|
||||||
Image image2 = loadImage(NOISE_2_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 reduced2 = measureTime("Reduction 2", () -> service.reduceNoise(image2, 1f, 5));
|
||||||
|
|
||||||
Image[] results = { reduced1, reduced2 };
|
Image[] results = { reduced1, reduced2 };
|
||||||
@@ -81,7 +81,7 @@ public class UseCasePresenter {
|
|||||||
|
|
||||||
public void computeToastOutline() {
|
public void computeToastOutline() {
|
||||||
Image image = loadImage(TOAST_IMAGE);
|
Image image = loadImage(TOAST_IMAGE);
|
||||||
Image result = service.detectToastContours(image);
|
Image result = measureTime("Toast outlines", () -> service.detectToastContours(image));
|
||||||
view.updateToastContours(result);
|
view.updateToastContours(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,30 @@ public class UseCaseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Image detectToastContours(Image image) {
|
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) {
|
private Image equalizeRgb(Image image) {
|
||||||
|
|||||||
Reference in New Issue
Block a user