In vari casi, potrebbe essere necessario convertire le immagini RGB in scala di grigi o in bianco e nero, ad esempio nell’elaborazione delle immagini, ecc. In base a ciò, in questo articolo imparerai come convertire un’immagine RGB in scala di grigi utilizzando Java . Inoltre, l’articolo tratterà in modo esplicito la scala di grigi e la binarizzazione delle immagini.
- API Java per la conversione di immagini in scala di grigi
- Converti immagini in scala di grigi in Java
- Converti le immagini in bianco e nero con la binarizzazione
API Java per convertire l’immagine in scala di grigi
Per convertire le immagini RGB in scala di grigi, utilizzeremo Aspose.Imaging for Java. È un’API di elaborazione delle immagini Java che consente di manipolare i formati di immagine più diffusi senza problemi. Puoi scaricare l’API o installarla utilizzando le seguenti configurazioni 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>
Converti un’immagine in scala di grigi in Java
Di seguito sono riportati i passaggi per convertire un’immagine RGB in scala di grigi in Java.
- Per prima cosa, carica l’immagine usando la classe Image.
- Quindi, lancia l’immagine in un oggetto RasterCachedImage.
- Memorizza l’immagine nella cache usando il metodo RasterCachedImage.cacheData().
- Converti l’immagine in scala di grigi usando il metodo RasterCachedImage.grayscale().
- Infine, salva l’immagine usando il metodo RasterCachedImage.save(String).
L’esempio di codice seguente mostra come convertire un’immagine in scala di grigi utilizzando Java.
// Carica un'immagine in un'istanza di Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Trasmetti l'immagine a RasterCachedImage
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
// Controlla se l'immagine è memorizzata nella cache
if (!rasterCachedImage.isCached()) {
// Immagine cache se non è già memorizzata nella cache
rasterCachedImage.cacheData();
}
// Trasforma l'immagine nella sua rappresentazione in scala di grigi
rasterCachedImage.grayscale();
// Salva l'immagine risultante
rasterCachedImage.save("Grayscaling_out.jpg");
}
Immagine di input
Quella che segue è un’immagine di esempio utilizzata in questo articolo.
Convertito in scala di grigi
Quella che segue è l’immagine dopo la conversione in scala di grigi.
Converti l’immagine in bianco e nero con la binarizzazione
Nella binarizzazione, ogni pixel in un’immagine può avere solo due valori possibili; 0 o 1. Qui, 0 denota l’assenza e 1 denota la presenza del colore. Aspose.Imaging supporta due metodi di binarizzazione, ovvero binarizzazione con soglia fissa e binarizzazione con soglia Otsu.
Binarizzazione con soglia fissa in Java
Di seguito sono riportati i passaggi per eseguire la binarizzazione su un’immagine utilizzando la soglia fissa.
- Per prima cosa, carica l’immagine usando la classe Image.
- Quindi, lancia l’immagine in un oggetto RasterCachedImage.
- Memorizza l’immagine nella cache usando il metodo RasterCachedImage.cacheData().
- Converti l’immagine in bianco e nero usando il metodo RasterCachedImage.binarizeFixed().
- Infine, salva l’immagine usando il metodo RasterCachedImage.save(String).
Il seguente codice Java applica la binarizzazione a un’immagine e la converte in bianco e nero.
// Carica un'immagine in un'istanza di Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Trasmetti l'immagine a RasterCachedImage e controlla se l'immagine è memorizzata nella cache
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Immagine cache se non è già memorizzata nella cache
rasterCachedImage.CacheData();
}
// Binarizza l'immagine con una soglia fissa predefinita e salva l'immagine risultante
rasterCachedImage.binarizeFixed((byte) 100);
rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}
Binarizzazione con soglia Otsu in Java
Di seguito sono riportati i passaggi per convertire un’immagine in bianco e nero con la soglia Otsu.
- Per prima cosa, carica l’immagine usando la classe Image.
- Trasmetti l’immagine in un oggetto RasterCachedImage.
- Memorizza l’immagine nella cache usando il metodo RasterCachedImage.cacheData().
- Converti l’immagine in bianco e nero usando il metodo RasterCachedImage.binarizeOtsu().
- Infine, salva l’immagine usando il metodo RasterCachedImage.save(String).
L’esempio di codice seguente mostra come convertire un’immagine in bianco e nero con la soglia Otsu usando Java.
// Carica un'immagine in un'istanza di Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Trasmetti l'immagine a RasterCachedImage e controlla se l'immagine è memorizzata nella cache
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
if (!rasterCachedImage.isCached())
{
// Immagine cache se non è già memorizzata nella cache
rasterCachedImage.cacheData();
}
// Binarizza l'immagine con la soglia di Otsu
rasterCachedImage.binarizeOtsu();
// Salva l'immagine risultante
rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}
Ottieni una licenza API gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza limitazioni di valutazione.
Conclusione
In questo articolo, hai imparato come convertire un’immagine in scala di grigi e in bianco e nero usando Java. Inoltre, hai visto come applicare la binarizzazione alle immagini con soglia fissa o Otsu. Inoltre, puoi esplorare di più sull’API di elaborazione delle immagini Java utilizzando documentazione. Inoltre, puoi condividere le tue domande con noi tramite il nostro forum.