Add basic and complex morphologies
This commit is contained in:
@@ -42,28 +42,18 @@ public class NavPresenter {
|
||||
appState.setImage(image);
|
||||
}
|
||||
|
||||
public void goToFourier() {
|
||||
navigator.showFourier();
|
||||
}
|
||||
public void goToFourier() { navigator.showFourier(); }
|
||||
|
||||
public void goToFiltering() {
|
||||
navigator.showIdealFiltering();
|
||||
}
|
||||
public void goToFiltering() { navigator.showIdealFiltering(); }
|
||||
|
||||
public void goToConvolution() {
|
||||
navigator.showConvolutionFiltering();
|
||||
}
|
||||
public void goToConvolution() { navigator.showConvolutionFiltering(); }
|
||||
|
||||
public void gotToButterworth() {
|
||||
navigator.showButterworth();
|
||||
}
|
||||
public void gotToButterworth() { navigator.showButterworth(); }
|
||||
|
||||
public GrayScaleMatrix getImageGrayMatrix() {
|
||||
return appState.getImage().toGrayScale();
|
||||
}
|
||||
public void goToBasicMorphology(){ navigator.showBasicMorphology(); }
|
||||
|
||||
public void setMode(Mode mode) {
|
||||
modeService.setMode(mode);
|
||||
}
|
||||
public GrayScaleMatrix getImageGrayMatrix() { return appState.getImage().toGrayScale(); }
|
||||
|
||||
public void setMode(Mode mode) { modeService.setMode(mode); }
|
||||
|
||||
}
|
||||
13
src/main/java/presenters/morphology/MorphologyListener.java
Normal file
13
src/main/java/presenters/morphology/MorphologyListener.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package presenters.morphology;
|
||||
|
||||
import domain.image.Image;
|
||||
|
||||
public interface MorphologyListener {
|
||||
void onErosionChanged(Image image);
|
||||
|
||||
void onDilationChanged(Image image);
|
||||
|
||||
void onOpeningChanged(Image image);
|
||||
|
||||
void onClosingChanged(Image image);
|
||||
}
|
||||
102
src/main/java/presenters/morphology/MorphologyPresenter.java
Normal file
102
src/main/java/presenters/morphology/MorphologyPresenter.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package presenters.morphology;
|
||||
|
||||
import app.state.AppState;
|
||||
import app.state.MorphologyState;
|
||||
import com.google.inject.Inject;
|
||||
import domain.image.Image;
|
||||
import services.MorphologyService;
|
||||
import ui.abstractions.IBasicMorphologyView;
|
||||
|
||||
public class MorphologyPresenter implements MorphologyListener {
|
||||
|
||||
private final AppState appState;
|
||||
private final MorphologyState morphologyState;
|
||||
private final MorphologyService morphologyService;
|
||||
private IBasicMorphologyView view;
|
||||
|
||||
@Inject
|
||||
public MorphologyPresenter(
|
||||
AppState appState,
|
||||
MorphologyState morphologyState,
|
||||
MorphologyService morphologyService
|
||||
) {
|
||||
this.appState = appState;
|
||||
this.morphologyState = morphologyState;
|
||||
this.morphologyService = morphologyService;
|
||||
}
|
||||
|
||||
public void setView(IBasicMorphologyView view) {
|
||||
this.view = view;
|
||||
|
||||
if (view != null) {
|
||||
morphologyState.subscribe(this);
|
||||
} else {
|
||||
morphologyState.unsubscribe(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void computeErosion(Integer maskSize) {
|
||||
Image image = appState.getImage();
|
||||
|
||||
Image result = morphologyService.erosion(image, maskSize);
|
||||
|
||||
morphologyState.setErosion(result);
|
||||
}
|
||||
|
||||
public void computeDilation(Integer maskSize) {
|
||||
Image image = appState.getImage();
|
||||
|
||||
Image result = morphologyService.dilation(image, maskSize);
|
||||
|
||||
morphologyState.setDilation(result);
|
||||
}
|
||||
|
||||
public void computeOpening(Integer maskSize) {
|
||||
Image image = appState.getImage();
|
||||
|
||||
Image result = morphologyService.opening(image, maskSize);
|
||||
|
||||
morphologyState.setOpening(result);
|
||||
}
|
||||
|
||||
public void computeClosing(Integer maskSize) {
|
||||
Image image = appState.getImage();
|
||||
|
||||
Image result = morphologyService.closing(image, maskSize);
|
||||
|
||||
morphologyState.setClosing(result);
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
morphologyState.unsubscribe(this);
|
||||
view = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onErosionChanged(Image image) {
|
||||
if (view != null) {
|
||||
view.updateErosion(image);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDilationChanged(Image image) {
|
||||
if (view != null) {
|
||||
view.updateDilation(image);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpeningChanged(Image image) {
|
||||
if (view != null) {
|
||||
view.updateOpening(image);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClosingChanged(Image image) {
|
||||
if (view != null) {
|
||||
view.updateClosing(image);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user