Kernel Border - neoneper/ClassProg3D1 GitHub Wiki

DETECTANDO BORDAS 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 borda Prewitt:

BufferedImage outImage = imageOperation.Convolve(inImage, BufferedImageOperationType.PREWITT);

Salvando nova Imagem:

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

Observe na imagem abaixo todos os metodos até o momento de detecção de bordas disponíveis para o metodo Convolve.

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