Kernel Nitidez - neoneper/ClassProg3D1 GitHub Wiki

MELHORANDO NITIDEZ DA 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.SHARPEN);

Salvando nova Imagem:

ImageIO.write(outImage, "jpg",new File("metroid_smooth.jpg"));

Os atuais metodos para nitidez de imagens são:

  • SHARPEN
  • ENBOS_CENTER
  • ENBOS_INNER
  • ENBOS_OUT

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