W różnych przypadkach może być konieczna konwersja obrazów RGB do skali szarości lub czerni i bieli, na przykład podczas przetwarzania obrazu itp. Zgodnie z tym w tym artykule dowiesz się, jak przekonwertować obraz RGB do skali szarości za pomocą języka Java . Ponadto w artykule szczegółowo omówione zostanie skalowanie szarości i binaryzacja obrazów.
- Java API do konwersji obrazu kolorowego na skalę szarości
- Konwertuj obraz na skalę szarości w Javie
- Konwertuj obraz na czarno-biały z binaryzacją
Konwerter obrazu kolorowego Java na skalę szarości — bezpłatne pobieranie
Aby przekonwertować obrazy RGB na skalę szarości, użyjemy Aspose.Imaging for Java. Jest to interfejs API przetwarzania obrazu Java, który umożliwia bezproblemowe manipulowanie popularnymi formatami obrazów. Możesz pobrać interfejs API lub zainstalować go przy użyciu następujących konfiguracji Mavena.
<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>
Konwertuj obraz RGB na skalę szarości w Javie
Poniżej przedstawiono kroki konwersji obrazu RGB na skalę szarości w Javie.
- Najpierw załaduj obraz przy użyciu klasy Image.
- Następnie 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 w Javie.
// Załaduj obraz w instancji Image
try (Image image = Image.load("aspose-logo.jpg"))
{
// Prześlij obraz do RasterCachedImage
RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
// Sprawdź, czy obraz jest zapisany w pamięci podręcznej
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 wynikowy obraz
rasterCachedImage.save("Grayscaling_out.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.
Java Zapisz obraz jako 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
Poniżej przedstawiono kroki przeprowadzania binaryzacji obrazu przy użyciu ustalonego progu.
- Najpierw załaduj obraz przy użyciu klasy Image.
- Następnie 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 Java stosuje binaryzację do obrazu i konwertuje go na czarno-biały.
// Załaduj obraz w instancji Image
try (Image image = Image.load("aspose-logo.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();
}
// Zbinaryzuj obraz z predefiniowanym stałym progiem i zapisz wynikowy obraz
rasterCachedImage.binarizeFixed((byte) 100);
rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}
Binaryzacja 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 Java.
// Załaduj obraz w instancji Image
try (Image image = Image.load("aspose-logo.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();
}
// Binaryzuj obraz za pomocą Otsu Thresholding
rasterCachedImage.binarizeOtsu();
// Zapisz wynikowy obraz
rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}
Kolorowy obraz do konwertera Java w skali szarości — 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ę, jak przekonwertować obraz kolorowy na obraz w skali szarości i czarno-biały za pomocą języka Java. 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 Java, korzystając z dokumentacji. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.