package ip.gui.frames;
import graphics.ImageUtils;
import java.awt.*;
import java.awt.event.ActionEvent;
import ip.gui.Kernels;
public class FilterFrame extends ImageFrame {
Menu filterMenu = getMenu("Filter");
Menu rgbMenu = getMenu("RGBto");
MenuItem gray_mi =
addMenuItem(rgbMenu, "[E-g]ray");
MenuItem blurFast_mi =
addMenuItem(rgbMenu, "blurFast");
public void actionPerformed(ActionEvent e) {
if (match(e, gray_mi)) {
gray();
return;
}
if (match(e, blurFast_mi)) {
blurFast();
return;
}
super.actionPerformed(e);
}
public void blurFast() {
convolveFast(Kernels.getHat13());
}
public void convolveFast(float k[][]) {
setImage(ImageUtils.convolution(getImage(), k));
super.image2Short();
repaint();
}
public void gray() {
for (int x = 0; x < getImageWidth(); x++)
for (int y = 0; y < getImageHeight(); y++) {
getR()[x][y] = (short)
((getR()[x][y] + getG()[x][y] + getB()[x][y]) / 3);
getG()[x][y] = getR()[x][y];
getB()[x][y] = getR()[x][y];
}
short2Image();
}
public FilterFrame(String title) {
super(title);
MenuBar menuBar = getMenuBar();
filterMenu.add(rgbMenu);
menuBar.add(filterMenu);
setMenuBar(menuBar);
}
public static void main(String args[]) {
FilterFrame imgFrm =
new FilterFrame("FilterFrame");
}
}