V různých případech musíte obrázky odšumovat, abyste zlepšili jejich vizuální kvalitu. To je užitečné, když chcete zlepšit celkovou čistotu obrázků. Odšumování se také používá k předběžnému zpracování snímků před další analýzou, jako je rozpoznávání, segmentace a tak dále. Mediánové a Wienerovy filtry se běžně používají k odstranění šumu a vyhlazení snímků. Pojďme se tedy podívat na to, jak aplikovat mediánové a wienerovy filtry na obrázky v Python.
- Knihovna Python pro použití mediálních a Wienerových obrazových filtrů
- Použijte střední filtr na obrázek v Python
- Aplikujte na obrázek Gauss Wienerův filtr
- Pohybová Wienerova filtrace obrazu
- Zdarma online aplikace pro úpravu obrázků
Knihovna Python pro použití filtrů obrázků Median a Wiener
K aplikaci mediánových a wienerových filtrů na obrázky použijeme Aspose.Imaging for Python – výkonnou knihovnu pro zpracování obrázků, která vám umožní bez námahy manipulovat s obrázky. Chcete-li knihovnu používat, můžete ji buď stáhnout, nebo ji nainstalovat pomocí následujícího příkazu.
> pip install aspose-imaging-python-net
Použijte střední filtr na obrázek v Python
Mediánový filtr je běžně používaná metoda odšumování, která využívá techniku nelineárního digitálního filtrování. Následují kroky, jak aplikovat mediánový filtr na obrázek v Python.
- 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 uložte filtrovaný obrázek pomocí metody RasterImage.save().
Následující ukázka kódu ukazuje, jak použít střední filtr na obrázek v Python.
import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MedianFilterOptions
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Načtěte zašuměný obraz
with Image.load(os.path.join(data_dir, "template.gif")) as image:
# Přeneste obrázek do RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Vytvořte instanci třídy MedianFilterOptions a nastavte velikost, použijte filtr MedianFilterOptions na objekt RasterImage a uložte výsledný obrázek
options = MedianFilterOptions(4)
raster_image.filter(image.bounds, options)
image.save(os.path.join(data_dir, "result.gif"))
if delete_output:
os.remove(os.path.join(data_dir, "result.gif"))
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 Python
Gauss wiener je další běžně používaná metoda pro zvýšení jasnosti a snížení šumu v obrazech. Pojďme se podívat na kroky potřebné k aplikaci Gauss wienerova filtru na obrázek v Python.
- 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 s velikostí poloměru a hodnotou vyhlazení.
- (Volitelné) Chcete-li získat obrázek ve stupních šedi, nastavte vlastnost GaussWienerFilterOptions.grayscale na hodnotu 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 Python.
import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import GaussWienerFilterOptions
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Načtěte obrázek
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
# Přeneste obrázek do RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Vytvořte instanci třídy GaussWienerFilterOptions a nastavte velikost poloměru a hodnotu vyhlazení.
options = GaussWienerFilterOptions(12, 3)
options.grayscale = True
# Použijte filtr MedianFilterOptions na objekt RasterImage a uložte výsledný obrázek
raster_image.filter(image.bounds, options)
image.save(os.path.join(data_dir, "result.jpg"))
if delete_output:
os.remove(os.path.join(data_dir, "result.jpg"))
Níže je obrázek před a po použití Gauss wienerova filtru s možností odstínů šedi.
Následuje obrázek před a po aplikaci Gauss wienerova filtru bez odstínů šedi.
Motion Wienerův filtr pro obrázek v Python
Pohybový wienerův filtr se používá ke snížení rozmazání nebo degradace způsobené pohybovým rozmazáním. K tomuto druhu rozmazání dochází v důsledku relativního pohybu mezi fotoaparátem a objektem. Následují kroky k použití filtru motion wiener na obrázek v Python.
- 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 Python.
import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MotionWienerFilterOptions
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# Načtěte obrázek
with Image.load(os.path.join(data_dir, "template.gif")) as image:
# Přeneste obrázek do RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Vytvořte instanci třídy MotionWienerFilterOptions a nastavte délku, hladkou hodnotu a úhel.
options = MotionWienerFilterOptions(50, 9, 90)
options.grayscale = True
# Použijte filtr MedianFilterOptions na objekt RasterImage a uložte výsledný obrázek
raster_image.filter(image.bounds, options)
image.save(os.path.join(data_dir, "result.gif"))
if delete_output:
os.remove(os.path.join(data_dir, "result.gif"))
Bezplatná knihovna filtrů obrázků Python
Můžete získat bezplatnou dočasnou licenci a na obrázky použít filtry medián a wiener bez omezení hodnocení.
Zdarma online aplikace pro úpravu obrázků
K úpravě obrázků online použijte náš bezplatný webový nástroj pro úpravu obrázků. Tento editor obrázků využívá Aspose.Imaging for Python a nežádá vás o vytvoření účtu.
Závěr
V tomto článku jste se naučili, jak aplikovat mediánové a wienerovy filtry na obrázky v Python. Kroky a ukázky kódu ukázaly, jak programově použít různé typy filtrů k odstranění šumu v obrazech. Kromě toho jsme se zabývali tím, jak snížit šum pohybujících se objektů na obrázku pomocí filtru motion wiener. Nakonec jsme vám poskytli online aplikaci pro úpravu obrázků, která je zcela zdarma a můžete ji používat bez registrace.
Více o knihovně pro zpracování obrázků Python můžete prozkoumat pomocí dokumentace. Také se s námi můžete podělit o své dotazy prostřednictvím našeho fóra.