Kernel Smooth - neoneper/ClassProg3D1 GitHub Wiki
SUAVIZANDO IMAGEM COM A CONVOLUÇÃO DE KERNEL
Inicializando objeto que me permite trabalhar com convolução e efeitos visuais na imagem origem:
BufferedImageOperation imageOperation = new BufferedImageOperation();
Carregando imagem para manipulação:
BufferedImage inImage = ImageIO.read(new File( "metroid.jpg"));
Criando imagem e aplicando kernel de suavização BoxBLUR:
BufferedImage outImage = imageOperation.Convolve(inImage, BufferedImageOperationType.BOXBLUR);
Salvando nova Imagem:
ImageIO.write(outImage, "jpg",new File("metroid_smooth.jpg"));
Os atuais metodos para suvisamento de imagens são:
- BOXBLUR
- CROSSBLUR
- SHARPBLUR
- GAUSIANBLUR
Note: Você também pode utilizar um Kernel customizado, apenas passando o kernel como parâmetro da função Convolve, Ex:
Criando Kernel, array 2D 3x3 contendo os valores de manipulação de pixels.
private static final float[][] Kernel_BoxBlur = //Kernel 3x3
{
{1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f},
{1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f},
{1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f},
}
Aplicando Kernel customizado à imagem de destino:
BufferedImage outImage = imageOperation.Convolve(inImage, Kernel_BoxBlur );