V předchozím příspěvku na blogu jsme ukázali, jak přidat efekt rozostření k obrázkům. Dnes vám ukážeme, jak aplikovat střední a wienerovy filtry, které se běžně používají k odstranění šumu a vyhlazení obrázků. Pojďme se tedy podívat, jak programově v Javě aplikovat medián a wiener filery na obrázek.
- Java API pro použití obrazových filtrů Median a Wiener
- Aplikujte střední filtr na obrázek v Javě
- Aplikujte na obrázek Gauss Wienerův filtr
- Pohybová Wienerova filtrace obrazu
Použít Median a Wiener Image Filters v Javě - Instalace API
K aplikaci mediánových a wienerových filtrů na obrázky použijeme Aspose.Imaging for Java. Je to výkonné rozhraní API pro úpravu obrázků pro manipulaci s obrázky z aplikací Java. 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>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>22.9</version>
</dependency>
Aplikujte střední filtr na obrázek v Javě
Mediánový filtr je nelineární technika digitálního filtrování, která je oblíbeným způsobem odšumování obrázků. Následují kroky pro použití mediánového filtru na obrázek v Javě.
- Nejprve načtěte obrázek pomocí metody Image.load().
- Poté přeneste obrázek do typu RasterImage.
- Vytvořte instanci třídy MedianFilterOptions a inicializujte ji s velikostí obdélníku.
- Použijte mediánový filtr pomocí metody RasterImage.filter(Rectangle, MedianFilterOptions).
- Nakonec výsledný obrázek uložte pomocí metody RasterImage.save().
Následující ukázka kódu ukazuje, jak použít střední filtr na obrázek v Javě.
// Načtěte zašuměný obraz
Image image = Image.load("jack.jpg");
// přeneste obrázek do RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Vytvořte instanci třídy MedianFilterOptions a nastavte velikost.
MedianFilterOptions options = new MedianFilterOptions(4);
// Použijte filtr MedianFilterOptions na objekt RasterImage.
rasterImage.filter(image.getBounds(), options);
// Uložte výsledný obrázek
image.save("Jac_median_denoise.jpg");
Níže je obrázek před a po použití mediánového filtru.
Použijte Gauss Wienerův filtr na obrázek v Javě
Gauss wiener je další běžně používanou metodou pro gradaci obrazu minimalizací aditivního šumu a rozmazání. Následují kroky pro použití gauss wienerova filtru na obrázek v Javě.
- Nejprve načtěte obrázek pomocí metody Image.load().
- Poté přeneste obrázek do typu RasterImage.
- Vytvořte instanci třídy GaussWienerFilterOptions a inicializujte ji pomocí velikosti poloměru a hladké hodnoty.
- (Volitelné) Chcete-li získat obrázek ve stupních šedi, použijte metodu GaussWienerFilterOptions.setGrayscale(true).
- Použijte gauss wienerův filtr pomocí metody RasterImage.filter(Rectangle, GaussWienerFilterOptions).
- Nakonec výsledný obrázek uložte pomocí metody RasterImage.save().
Následující ukázka kódu ukazuje, jak aplikovat gauss wienerův filtr na obrázek v Javě.
// Načtěte obrázek
Image image = Image.load("jack.jpg");
// přeneste obrázek do RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Vytvořte instanci třídy GaussWienerFilterOptions a nastavte velikost poloměru a hodnotu vyhlazení.
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.setGrayscale(true);
// Použijte filtr GaussWienerFilterOptions na objekt RasterImage.
rasterImage.filter(image.getBounds(), options);
// Uložte výsledný obrázek
image.save("Jac_guass_weiner.jpg");
Níže je obrázek před a po aplikaci gauss wienerova filtru s možností odstínů šedi.
Následuje obrázek před a po aplikaci gaussova wienerova filtru bez odstínů šedi.
Použijte Motion Wiener Filter pro obrázek v Javě
Pohybový wienerův filtr se používá k odstranění rozmazání obrazu, které vzniká v důsledku pohybujících se objektů. Následují kroky k použití filtru motion wiener na obrázek v Javě.
- Nejprve načtěte obrázek pomocí metody Image.load().
- Poté přeneste obrázek do typu RasterImage.
- Vytvořte instanci třídy MotionWienerFilterOptions a inicializujte ji pomocí délky, hladké hodnoty a úhlu.
- Použijte motion wienerův filtr pomocí metody RasterImage.filter(Rectangle, MotionWienerFilterOptions).
- Nakonec výsledný obrázek uložte pomocí metody RasterImage.save().
Následující ukázka kódu ukazuje, jak aplikovat filtr pohybu wiener na obrázek v Javě.
// Načtěte obrázek
Image image = Image.load("jack.jpg");
// přeneste obrázek do RasterImage
RasterImage rasterImage = (RasterImage) image;
if (rasterImage == null) {
return;
}
// Vytvořte instanci třídy MotionWienerFilterOptions a nastavte délku, hladkou hodnotu a úhel.
MotionWienerFilterOptions options = new MotionWienerFilterOptions(10, 2, 10);
//options.setGrayscale(true);
// Použijte filtr MotionWienerFilterOptions na objekt RasterImage.
rasterImage.filter(image.getBounds(), options);
// Uložte výsledný obrázek
image.save("Jac_motion_weiner.jpg");
Java Image Filtering API – Získejte bezplatnou licenci
Můžete získat bezplatnou dočasnou licenci a na obrázky použít filtry medián a wiener bez omezení hodnocení.
Závěr
V tomto článku jste se naučili, jak aplikovat mediánové a wienerovy filtry na obrázky v Javě. Dále jsme se zabývali tím, jak snížit šum pohybujících se objektů na obrázku. Tyto funkce můžete snadno použít ve své aplikaci Java k integraci možností úprav obrázků.
Přečtěte si více
Další informace o rozhraní API pro zpracování obrazu Java můžete prozkoumat pomocí dokumentace. Také se s námi můžete podělit o své dotazy prostřednictvím našeho fóra.