W różnych przypadkach może być konieczne przekonwertowanie obrazów kolorowych na skalę szarości lub czarno-białe, na przykład podczas przetwarzania obrazu itp. Dlatego w tym artykule dowiesz się, jak przekonwertować obraz na skalę szarości w języku C#. Ponadto artykuł dokładnie omówi skalowanie szarości i binaryzację obrazów.
- C# API do konwersji obrazu do skali szarości
- Konwertuj obraz na skalę szarości w C#
- Konwertuj obraz na czarno-biały z binaryzacją
- Uzyskaj bezpłatną licencję API
Interfejs API języka C# do konwersji obrazu na skalę szarości — bezpłatne pobieranie
Aby przekonwertować kolorowe obrazy RGB na skalę szarości, użyjemy Aspose.Imaging for .NET. Jest to potężny interfejs API do przetwarzania obrazu, który pozwala bezproblemowo manipulować popularnymi formatami obrazów. Możesz pobrać interfejs API lub zainstalować go za pomocą NuGet.
PM> Install-Package Aspose.Imaging
Konwertuj obraz na skalę szarości w C#
Poniżej przedstawiono kroki konwersji obrazu kolorowego na skalę szarości w języku C#.
- Najpierw załaduj obraz przy użyciu klasy Image.
- Rzuć obraz na obiekt RasterCachedImage.
- Zapisz obraz w pamięci podręcznej za pomocą metody RasterCachedImage.CacheData().
- Konwertuj obraz do skali szarości za pomocą metody RasterCachedImage.Grayscale().
- Na koniec zapisz obraz przy użyciu metody RasterCachedImage.Save(String).
Poniższy przykładowy kod pokazuje, jak przekonwertować obraz na skalę szarości przy użyciu języka C#.
// Załaduj obraz w instancji klasy Image
using (Image image = Image.Load("aspose.jpg"))
{
// Prześlij obraz do RasterCachedImage i sprawdź, czy obraz jest buforowany
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Obraz w pamięci podręcznej, jeśli nie jest jeszcze w pamięci podręcznej
rasterCachedImage.CacheData();
}
// Przekształć obraz do jego reprezentacji w skali szarości
rasterCachedImage.Grayscale();
// Zapisz obraz
rasterCachedImage.Save("grayscaled.jpg");
}
Obraz wejściowy
Poniżej znajduje się przykładowy obraz użyty w tym artykule.
Konwertowane na skalę szarości
Poniżej znajduje się obraz po konwersji do skali szarości.
Obraz w skali szarości w języku C# — czarno-biały z binaryzacją
W przypadku binaryzacji każdy piksel obrazu może mieć tylko dwie możliwe wartości; 0 lub 1. Tutaj 0 oznacza brak, a 1 oznacza obecność koloru. Aspose.Imaging wspiera dwie metody binaryzacji tj. binaryzację z ustalonym progiem oraz binaryzację z progiem Otsu.
Binaryzacja ze stałym progiem w C#
Poniżej przedstawiono kroki przeprowadzania binaryzacji obrazu przy użyciu ustalonego progu.
- Najpierw załaduj obraz przy użyciu klasy Image.
- Rzuć obraz na obiekt RasterCachedImage.
- Zapisz obraz w pamięci podręcznej za pomocą metody RasterCachedImage.CacheData().
- Konwertuj obraz na czarno-biały metodą RasterCachedImage.BinarizeFixed().
- Na koniec zapisz obraz przy użyciu metody RasterCachedImage.Save(String).
Poniższy kod C# stosuje binaryzację do obrazu i konwertuje go na czarno-biały.
// Załaduj obraz w instancji klasy Image
using (Image image = Image.Load("aspose.jpg"))
{
// Prześlij obraz do RasterCachedImage i sprawdź, czy obraz jest buforowany
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Obraz w pamięci podręcznej, jeśli nie jest jeszcze w pamięci podręcznej
rasterCachedImage.CacheData();
}
// Przekształć obraz do jego reprezentacji binarnej
rasterCachedImage.BinarizeFixed(100);
// Zapisz obraz
rasterCachedImage.Save("black and white.jpg");
}
Binaryzacja C# z progiem Otsu
Poniżej przedstawiono krok konwersji obrazu na czarno-biały z progiem Otsu.
- Najpierw załaduj obraz przy użyciu klasy Image.
- Rzuć obraz na obiekt RasterCachedImage.
- Zapisz obraz w pamięci podręcznej za pomocą metody RasterCachedImage.CacheData().
- Konwertuj obraz na czarno-biały metodą RasterCachedImage.BinarizeOtsu().
- Na koniec zapisz obraz przy użyciu metody RasterCachedImage.Save(String).
Poniższy przykładowy kod pokazuje, jak przekonwertować obraz na czarno-biały z progiem Otsu przy użyciu języka C#.
// Załaduj obraz w instancji klasy Image
using (Image image = Image.Load("aspose.jpg"))
{
// Prześlij obraz do RasterCachedImage i sprawdź, czy obraz jest buforowany
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// Obraz w pamięci podręcznej, jeśli nie jest jeszcze w pamięci podręcznej
rasterCachedImage.CacheData();
}
// Przekształć obraz do jego reprezentacji binarnej
rasterCachedImage.BinarizeOtsu();
// Zapisz obraz
rasterCachedImage.Save("black and white.jpg");
}
C# Image to Grayscale Converter — Uzyskaj bezpłatną licencję
Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z API bez ograniczeń ewaluacyjnych.
Wniosek
W tym artykule nauczyłeś się konwertować obraz do skali szarości i czerni i bieli przy użyciu języka C#. Ponadto widziałeś, jak zastosować binaryzację do obrazów ze stałym progiem lub progiem Otsu. Ponadto możesz dowiedzieć się więcej o interfejsie API przetwarzania obrazu w C#, korzystając z dokumentacji. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.