przekonwertuj obraz na skalę szarości C#

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.

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#.

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.

obraz do skali szarości C#

Konwertowane na skalę szarości

Poniżej znajduje się obraz po konwersji do skali szarości.

obraz w 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.

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.

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.

Zobacz też