Použijte Medián a Wienerův filtr na obrázky v Python

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í 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 střední filtr na Image Python

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.

Použijte Gauss Weinerův filtr na odstínění šedi obrazu

Následuje obrázek před a po aplikaci Gauss wienerova filtru bez odstínů šedi.

Na obrázek použijte barevný filtr Gauss Weiner

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"))
Použijte Motion Weinerův filtr na obrázek v Python

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.

Viz také