Kernel Smooth - neoneper/ClassProg3D1 GitHub Wiki

SUAVIZANDO IMAGEM COM A CONVOLUÇÃO DE KERNEL

Ver o script do Exercício:

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 );

HOME