Add low-pass and high-pass filtering
This commit is contained in:
@@ -6,14 +6,20 @@ import domain.image.processing.filtering.GlobalLinearFiltering;
|
||||
|
||||
public class FilteringService {
|
||||
|
||||
public Image lowPassFiltering(GrayScaleMatrix matrix) {
|
||||
GrayScaleMatrix filteredMatrix = GlobalLinearFiltering.lowPassFiltering(matrix, 10);
|
||||
public Image lowPassFiltering(GrayScaleMatrix matrix, double percentage) {
|
||||
double cutoff = percentage * getMaxCutoff(matrix.getWidth(), matrix.getHeight());
|
||||
GrayScaleMatrix filteredMatrix = GlobalLinearFiltering.lowPassFiltering(matrix, cutoff);
|
||||
return filteredMatrix.toImage();
|
||||
}
|
||||
|
||||
public Image highPassFiltering(GrayScaleMatrix matrix) {
|
||||
GrayScaleMatrix filteredMatrix = GlobalLinearFiltering.highPassFiltering(matrix, 10);
|
||||
public Image highPassFiltering(GrayScaleMatrix matrix, double percentage) {
|
||||
double cutoff = percentage * getMaxCutoff(matrix.getWidth(), matrix.getHeight());
|
||||
GrayScaleMatrix filteredMatrix = GlobalLinearFiltering.highPassFiltering(matrix, cutoff);
|
||||
return filteredMatrix.toImage();
|
||||
}
|
||||
|
||||
private double getMaxCutoff(int width, int height) {
|
||||
return Math.sqrt(Math.pow(width / 2.0, 2) + Math.pow(height / 2.0, 2));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user