imagem RGB para java em tons de cinza

Em vários casos, pode ser necessário converter as imagens RGB para tons de cinza ou preto e branco, por exemplo, no processamento de imagens, etc. . Além disso, o artigo abordará explicitamente a escala de cinza e a binarização das imagens.

API Java para converter imagem em escala de cinza

Para converter imagens RGB em escala de cinza, usaremos Aspose.Imaging for Java. É uma API de processamento de imagem Java que permite manipular formatos de imagem populares sem problemas. Você pode baixar a API ou instalá-la usando as seguintes configurações do Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.7</version>
    <classifier>jdk16</classifier>
</dependency>

Converter uma imagem em escala de cinza em Java

A seguir estão as etapas para converter uma imagem RGB em escala de cinza em Java.

O exemplo de código a seguir mostra como converter uma imagem em escala de cinza usando Java.

// Carregar uma imagem em uma instância de Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Transmita a imagem para RasterCachedImage
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    
    // Verifique se a imagem está em cache
    if (!rasterCachedImage.isCached()) {
        // Cache de imagem se ainda não estiver em cache
        rasterCachedImage.cacheData();
    }
    // Transforme a imagem em sua representação em escala de cinza
    rasterCachedImage.grayscale();
    
    // Salve a imagem resultante
    rasterCachedImage.save("Grayscaling_out.jpg");
}

Imagem de entrada

Segue-se uma imagem de exemplo utilizada neste artigo.

imagem para escala de cinza Java

Convertido para escala de cinza

A seguir está a imagem após a conversão para escala de cinza.

imagem em tons de cinza

Converter imagem em preto e branco com binarização

Na binarização, cada pixel em uma imagem pode ter apenas dois valores possíveis; 0 ou 1. Aqui, 0 denota a ausência e 1 denota a presença da cor. Aspose.Imaging suporta dois métodos de binarização, ou seja, binarização com limite fixo e binarização com limite Otsu.

Binarização com limite fixo em Java

A seguir estão as etapas para realizar a binarização em uma imagem usando um limite fixo.

O código Java a seguir aplica a binarização a uma imagem e a converte em preto e branco.

// Carregar uma imagem em uma instância de Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Transmita a imagem para RasterCachedImage e verifique se a imagem está armazenada em cache                
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Cache de imagem se ainda não estiver em cache
        rasterCachedImage.CacheData();
    }

    // Binarize a imagem com limite fixo predefinido e salve a imagem resultante                
    rasterCachedImage.binarizeFixed((byte) 100);
    rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}

Binarização com Otsu Threshold em Java

A seguir estão as etapas para converter uma imagem em preto e branco com limite Otsu.

O exemplo de código a seguir mostra como converter uma imagem em preto e branco com limite Otsu usando Java.

// Carregar uma imagem em uma instância de Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Transmita a imagem para RasterCachedImage e verifique se a imagem está armazenada em cache
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    if (!rasterCachedImage.isCached())
    {
        // Cache de imagem se ainda não estiver em cache
        rasterCachedImage.cacheData();
    }
    // Binarizar imagem com Otsu Thresholding
    rasterCachedImage.binarizeOtsu();
  
    // Salve a imagem resultante
    rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como converter uma imagem em escala de cinza e preto e branco usando Java. Além disso, você viu como aplicar a binarização às imagens com limite fixo ou Otsu. Além disso, você pode explorar mais sobre a API de processamento de imagem Java usando documentação. Além disso, você pode compartilhar suas dúvidas conosco por meio do nosso fórum.

Veja também