
In vari casi, potrebbe essere necessario convertire le immagini a colori in scala di grigi o in bianco e nero, ad esempio nell’elaborazione delle immagini, ecc. Pertanto, in questo articolo imparerai come convertire un’immagine in scala di grigi usando C#. Inoltre, l’articolo tratterà esplicitamente la scala di grigi e la binarizzazione delle immagini.
- API C# per la conversione di immagini in scala di grigi
- Converti immagini in scala di grigi in C#
- Converti le immagini in bianco e nero con la binarizzazione
- Ottieni una licenza API gratuita
API C# per convertire l’immagine in scala di grigi
Per convertire le immagini a colori RGB in scala di grigi, useremo Aspose.Imaging for .NET. È una potente API di elaborazione delle immagini che ti consente di manipolare senza problemi i formati di immagine più diffusi. Puoi scaricare l’API o installarla utilizzando NuGet.
PM> Install-Package Aspose.Imaging
Converti un’immagine in scala di grigi in C#
Di seguito sono riportati i passaggi per convertire un’immagine a colori in scala di grigi in C#.
- 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 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 usando C#.
// Carica un'immagine in un'istanza della classe Image
using (Image image = Image.Load("aspose.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();
}
// Trasforma l'immagine nella sua rappresentazione in scala di grigi
rasterCachedImage.Grayscale();
// Salva l'immagine
rasterCachedImage.Save("grayscaled.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 C#
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.
- 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.BinarizeFixed().
- Infine, salva l’immagine usando il metodo RasterCachedImage.Save(String).
Il codice C# seguente applica la binarizzazione a un’immagine e la converte in bianco e nero.
// Carica un'immagine in un'istanza della classe Image
using (Image image = Image.Load("aspose.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();
}
// Trasforma l'immagine nella sua rappresentazione binaria
rasterCachedImage.BinarizeFixed(100);
// Salva l'immagine
rasterCachedImage.Save("black and white.jpg");
}
Binarizzazione con soglia Otsu in C#
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 C#.
// Carica un'immagine in un'istanza della classe Image
using (Image image = Image.Load("aspose.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();
}
// Trasforma l'immagine nella sua rappresentazione binaria
rasterCachedImage.BinarizeOtsu();
// Salva l'immagine
rasterCachedImage.Save("black and white.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 C#. 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 C# utilizzando documentazione. Inoltre, puoi condividere le tue domande con noi tramite il nostro forum.