Add low-pass and high-pass filtering
This commit is contained in:
@@ -11,7 +11,7 @@ import domain.image.GrayScaleMatrix;
|
||||
import domain.image.Image;
|
||||
import domain.image.processing.complex.ComplexMatrix;
|
||||
import services.ImageService;
|
||||
import ui.interfaces.IDoubleMatrix;
|
||||
import ui.abstractions.IDoubleMatrix;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
@@ -1,21 +1,28 @@
|
||||
package presenters;
|
||||
|
||||
import app.state.FilteringState;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Inject;
|
||||
import domain.events.filtering.HighPassChangedEvent;
|
||||
import domain.events.filtering.LowPassChangedEvent;
|
||||
import domain.image.GrayScaleMatrix;
|
||||
import domain.image.Image;
|
||||
import services.FilteringService;
|
||||
import services.ImageService;
|
||||
import ui.implementation.views.FilteringView;
|
||||
import ui.interfaces.IFilteringView;
|
||||
import ui.abstractions.IFilteringView;
|
||||
|
||||
public class FilteringPresenter {
|
||||
|
||||
private final FilteringState state;
|
||||
private final ImageService imageService;
|
||||
private final FilteringService filteringService;
|
||||
private IFilteringView view;
|
||||
|
||||
@Inject
|
||||
public FilteringPresenter(ImageService imageService, FilteringService filteringService) {
|
||||
public FilteringPresenter(FilteringState state, ImageService imageService, FilteringService filteringService) {
|
||||
this.state = state;
|
||||
this.state.register(this);
|
||||
|
||||
this.imageService = imageService;
|
||||
this.filteringService = filteringService;
|
||||
}
|
||||
@@ -24,17 +31,25 @@ public class FilteringPresenter {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
public Image computeLowPassFiltering(){
|
||||
public void computeLowPassFiltering(int percentage){
|
||||
GrayScaleMatrix matrix = imageService.getGrayScale();
|
||||
return filteringService.lowPassFiltering(matrix);
|
||||
Image image = filteringService.lowPassFiltering(matrix, (double) percentage /100);
|
||||
this.state.setLowPass(image);
|
||||
}
|
||||
|
||||
public Image computeHighPassFiltering(){
|
||||
public void computeHighPassFiltering(int percentage){
|
||||
GrayScaleMatrix matrix = imageService.getGrayScale();
|
||||
return filteringService.highPassFiltering(matrix);
|
||||
Image image = filteringService.highPassFiltering(matrix, (double) percentage /100);
|
||||
this.state.setHighPass(image);
|
||||
}
|
||||
|
||||
public Image getImage(){
|
||||
return imageService.getImage();
|
||||
@Subscribe
|
||||
public void onLowPassUpdate(LowPassChangedEvent event){
|
||||
view.updateLowPassFiltering(event.image());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onHighPassUpdate(HighPassChangedEvent event){
|
||||
view.updateHighPassFiltering(event.image());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import domain.events.ModeChangedEvent;
|
||||
import domain.image.Image;
|
||||
import services.ImageService;
|
||||
import services.ModeService;
|
||||
import ui.interfaces.IMainView;
|
||||
import ui.abstractions.IMainView;
|
||||
|
||||
/**
|
||||
* @author Laurent Crema
|
||||
|
||||
@@ -6,7 +6,7 @@ import domain.common.Mode;
|
||||
import domain.image.GrayScaleMatrix;
|
||||
import services.ImageService;
|
||||
import services.ModeService;
|
||||
import ui.interfaces.INavBar;
|
||||
import ui.abstractions.INavBar;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
Reference in New Issue
Block a user