Add convolution and mean filtering
This commit is contained in:
@@ -47,9 +47,12 @@ public class NavPresenter {
|
||||
}
|
||||
|
||||
public void goToFiltering() {
|
||||
navigator.showFiltering();
|
||||
navigator.showIdealFiltering();
|
||||
}
|
||||
|
||||
public void goToConvolution() {
|
||||
navigator.showConvolutionFiltering();
|
||||
}
|
||||
|
||||
public void gotToButterworth() {
|
||||
navigator.showButterworth();
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package presenters.filtering;
|
||||
package presenters.filtering.global;
|
||||
|
||||
import domain.events.listeners.Listener;
|
||||
import domain.image.Image;
|
||||
|
||||
public interface FilteringListener extends Listener {
|
||||
public interface GlobalFilteringListener extends Listener {
|
||||
void onLowPassChanged(Image image);
|
||||
void onHighPassChanged(Image image);
|
||||
void onButterworthLowPassChanged(Image image);
|
||||
@@ -1,23 +1,23 @@
|
||||
package presenters.filtering;
|
||||
package presenters.filtering.global;
|
||||
|
||||
import app.state.AppState;
|
||||
import app.state.FilteringState;
|
||||
import app.state.GlobalFilteringState;
|
||||
import com.google.inject.Inject;
|
||||
import domain.image.GrayScaleMatrix;
|
||||
import domain.image.Image;
|
||||
import services.FilteringService;
|
||||
import services.GlobalFilteringService;
|
||||
import services.ImageService;
|
||||
import ui.abstractions.IFilteringView;
|
||||
import ui.abstractions.IGlobalFilteringView;
|
||||
|
||||
public class FilteringPresenter implements FilteringListener {
|
||||
public class GlobalFilteringPresenter implements GlobalFilteringListener {
|
||||
private final AppState appState;
|
||||
private final FilteringState state;
|
||||
private final GlobalFilteringState state;
|
||||
private final ImageService imageService;
|
||||
private final FilteringService filteringService;
|
||||
private IFilteringView view;
|
||||
private final GlobalFilteringService filteringService;
|
||||
private IGlobalFilteringView view;
|
||||
|
||||
@Inject
|
||||
public FilteringPresenter(AppState appState, FilteringState state, ImageService imageService, FilteringService filteringService) {
|
||||
public GlobalFilteringPresenter(AppState appState, GlobalFilteringState state, ImageService imageService, GlobalFilteringService filteringService) {
|
||||
this.appState = appState;
|
||||
this.state = state;
|
||||
this.imageService = imageService;
|
||||
@@ -25,7 +25,7 @@ public class FilteringPresenter implements FilteringListener {
|
||||
this.state.subscribe(this);
|
||||
}
|
||||
|
||||
public void setView(IFilteringView view) {
|
||||
public void setView(IGlobalFilteringView view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package presenters.filtering.local;
|
||||
|
||||
import domain.image.Image;
|
||||
|
||||
public interface LocalFilteringListener {
|
||||
|
||||
void onConvolutionChanged(Image image);
|
||||
void onMeanChanged(Image image);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package presenters.filtering.local;
|
||||
|
||||
import app.state.AppState;
|
||||
import app.state.LocalFilteringState;
|
||||
import domain.image.Image;
|
||||
import jakarta.inject.Inject;
|
||||
import services.ImageService;
|
||||
import services.LocalFilteringService;
|
||||
import ui.abstractions.ILocalFilteringView;
|
||||
|
||||
public class LocalFilteringPresenter implements LocalFilteringListener {
|
||||
|
||||
private final AppState appState;
|
||||
private final LocalFilteringState state;
|
||||
private final ImageService imageService;
|
||||
private final LocalFilteringService filteringService;
|
||||
|
||||
private ILocalFilteringView view;
|
||||
|
||||
@Inject
|
||||
public LocalFilteringPresenter(
|
||||
AppState appState,
|
||||
LocalFilteringState state,
|
||||
ImageService imageService,
|
||||
LocalFilteringService filteringService
|
||||
) {
|
||||
this.appState = appState;
|
||||
this.state = state;
|
||||
this.imageService = imageService;
|
||||
this.filteringService = filteringService;
|
||||
|
||||
this.state.subscribe(this);
|
||||
}
|
||||
|
||||
public void setView(ILocalFilteringView view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
public void computeConvolutionFiltering(double[][] mask) {
|
||||
Image image = filteringService.applyConvolutionMask(appState.getImage(), mask);
|
||||
state.setConvolution(image);
|
||||
}
|
||||
|
||||
public void computeMeanFiltering(int value) {
|
||||
Image image = filteringService.applyMeanFilter(appState.getImage(),value);
|
||||
state.setMean(image);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConvolutionChanged(Image image) {
|
||||
if (view != null) {
|
||||
view.updateConvolutionFiltering(image);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMeanChanged(Image image) {
|
||||
if (view != null) {
|
||||
view.updateMeanFiltering(image);
|
||||
}
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
state.unsubscribe(this);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user