RGB obrázek do odstínů šedi java

V různých případech může být nutné převést obrázky RGB na stupně šedi nebo černobílé, například při zpracování obrázků atd. V tomto článku se proto dozvíte, jak převést obrázek RGB na stupně šedi pomocí Java. Kromě toho se článek bude výslovně zabývat škálováním šedi a binarizací obrázků.

Převést barevný obrázek na stupně šedi v Javě - Instalace API

Chcete-li převést obrázky RGB do stupňů šedi, použijeme Aspose.Imaging for Java. Jedná se o rozhraní API pro zpracování obrazu Java, které umožňuje bezproblémovou manipulaci s oblíbenými formáty obrázků. Rozhraní API si můžete buď stáhnout, nebo jej nainstalovat pomocí následujících konfigurací 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>

Převeďte obrázek RGB na stupně šedi v Javě

Níže jsou uvedeny kroky pro převod obrázku RGB na stupně šedi v Javě.

Následující ukázka kódu ukazuje, jak převést obrázek na stupně šedi v Javě.

// Načtěte obrázek v instanci Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Odešlete obrázek do RasterCachedImage
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    
    // Zkontrolujte, zda je obrázek uložen v mezipaměti
    if (!rasterCachedImage.isCached()) {
        // Uložte obrázek do mezipaměti, pokud již není uložen do mezipaměti
        rasterCachedImage.cacheData();
    }
    // Transformujte obrázek na jeho reprezentaci ve stupních šedi
    rasterCachedImage.grayscale();
    
    // Uložte výsledný obrázek
    rasterCachedImage.save("Grayscaling_out.jpg");
}

Vstupní obrázek

Následuje ukázkový obrázek použitý v tomto článku.

obrázek ve stupních šedi Java

Převedeno na stupně šedi

Následuje obrázek po převodu do stupňů šedi.

obrázek ve stupních šedi

Java Image to Grayscale - Binarization

Při binarizaci může mít každý pixel v obrázku pouze dvě možné hodnoty; 0 nebo 1. Zde 0 označuje nepřítomnost a 1 označuje přítomnost barvy. Aspose.Imaging podporuje dvě metody binarizace, tj. binarizaci s pevnou a binarizaci s prahem Otsu.

Binarizace s pevným prahem

Následují kroky k provedení binarizace obrazu pomocí pevného prahu.

Následující kód Java aplikuje binarizaci na obrázek a převede jej na černobílý.

// Načtěte obrázek v instanci Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Odešlete obrázek do RasterCachedImage a zkontrolujte, zda je obrázek uložen v mezipaměti                
    RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
    if (!rasterCachedImage.IsCached)
    {
        // Uložte obrázek do mezipaměti, pokud již není uložen do mezipaměti
        rasterCachedImage.CacheData();
    }

    // Binarizujte obraz s předdefinovaným pevným prahem a výsledný obraz uložte                
    rasterCachedImage.binarizeFixed((byte) 100);
    rasterCachedImage.save("BinarizationWithFixedThreshold_out.jpg");
}

Binarizace s Otsu Threshold

Následují kroky pro převod obrázku na černobílý s prahem Otsu.

Následující ukázka kódu ukazuje, jak převést obrázek na černobílý s prahem Otsu pomocí Java.

// Načtěte obrázek v instanci Image
try (Image image = Image.load("aspose-logo.jpg"))
{
    // Odešlete obrázek do RasterCachedImage a zkontrolujte, zda je obrázek uložen v mezipaměti
    RasterCachedImage rasterCachedImage = (RasterCachedImage) image;
    if (!rasterCachedImage.isCached())
    {
        // Uložte obrázek do mezipaměti, pokud již není uložen do mezipaměti
        rasterCachedImage.cacheData();
    }
    // Binarizujte obrázek pomocí Otsu Thresholding
    rasterCachedImage.binarizeOtsu();
  
    // Uložte výsledný obrázek
    rasterCachedImage.save("BinarizationWithOtsuThreshold_out.jpg");
}

Převeďte obrázek na stupně šedi pomocí bezplatné licence

Můžete získat bezplatnou dočasnou licenci a převádět obrázky do stupňů šedi bez omezení hodnocení.

Závěr

V tomto článku jste se naučili, jak převést barevný obrázek na stupně šedi a černobílý pomocí Java. Navíc jste viděli, jak aplikovat binarizaci na obrázky s pevnými nebo Otsu prahy. Kromě toho můžete prozkoumat více o rozhraní API pro zpracování obrazu Java pomocí dokumentace. Své dotazy s námi můžete sdílet také prostřednictvím našeho fóra.

Viz také