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ů.
- Java API pro převod barevného obrázku na stupně šedi
- Převést obrázek na stupně šedi v Javě
- Převést obrázek na černobílý pomocí binarizace
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ě.
- Nejprve načtěte obrázek pomocí třídy Image.
- Poté přeneste obrázek do objektu RasterCachedImage.
- Uložte obrázek do mezipaměti pomocí metody RasterCachedImage.cacheData().
- Převeďte obrázek na stupně šedi pomocí metody RasterCachedImage.grayscale().
- Nakonec obrázek uložte pomocí metody RasterCachedImage.save(String).
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.
Převedeno na stupně šedi
Následuje obrázek po převodu do stupňů š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.
- Nejprve načtěte obrázek pomocí třídy Image.
- Poté přeneste obrázek do objektu RasterCachedImage.
- Uložte obrázek do mezipaměti pomocí metody RasterCachedImage.cacheData().
- Převeďte obrázek na černobílý pomocí metody RasterCachedImage.binarizeFixed().
- Nakonec obrázek uložte pomocí metody RasterCachedImage.save(String).
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.
- Nejprve načtěte obrázek pomocí třídy Image.
- Přeneste obrázek do objektu RasterCachedImage.
- Uložte obrázek do mezipaměti pomocí metody RasterCachedImage.cacheData().
- Převeďte obrázek na černobílý pomocí metody RasterCachedImage.binarizeOtsu().
- Nakonec obrázek uložte pomocí metody RasterCachedImage.save(String).
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.