📄 n4connectivityfilter.java
字号:
package image.filter;
import image.EditableImage;
import image.ImagingUtils;
import java.awt.Color;
import java.awt.image.BufferedImage;
public class N4ConnectivityFilter extends AbstractFilter {
public N4ConnectivityFilter(EditableImage image) {
super(image);
}
public void processFilter() {
int vizinho = 0;
int p = ((Integer)getParameter("p")).intValue();
int q = ((Integer)getParameter("q")).intValue();
p = ImagingUtils.convertToGrayscale(ImagingUtils.convertPixel(p, p, p));
q = ImagingUtils.convertToGrayscale(ImagingUtils.convertPixel(q, q, q));
int width = image.getWidth();
int height = image.getHeight();
BufferedImage bufferedImage = image.getImage();
for (int w = 0; w < width; w++) {
for (int h = 0; h < height; h++) {
if (w - 1 >= 0) {
int valor = ImagingUtils.convertToGrayscale(bufferedImage.getRGB(w-1, h));
if (p == valor) {
if (w - 1 >= 0) {
vizinho = ImagingUtils.convertToGrayscale(bufferedImage.getRGB(w-1, h));
if (vizinho == q) {
bufferedImage.setRGB(w-1, h, Color.YELLOW.getRGB());
bufferedImage.setRGB(w, h, Color.YELLOW.getRGB());
}
}
if (w+1 < width) {
vizinho = ImagingUtils.convertToGrayscale(bufferedImage.getRGB(w+1, h));
if (vizinho == q) {
bufferedImage.setRGB(w+1, h, Color.YELLOW.getRGB());
bufferedImage.setRGB(w, h, Color.YELLOW.getRGB());
}
}
if (h - 1 >= 0) {
vizinho = ImagingUtils.convertToGrayscale(bufferedImage.getRGB(w, h-1));
if (vizinho == q) {
bufferedImage.setRGB(w, h-1, Color.YELLOW.getRGB());
bufferedImage.setRGB(w, h, Color.YELLOW.getRGB());
}
}
if (h+1 < height) {
vizinho = ImagingUtils.convertToGrayscale(bufferedImage.getRGB(w, h+1));
if (vizinho == q) {
bufferedImage.setRGB(w, h+1, Color.YELLOW.getRGB());
bufferedImage.setRGB(w, h, Color.YELLOW.getRGB());
}
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -