W różnych przypadkach konieczne jest odszumienie obrazów, aby poprawić ich jakość wizualną. Jest to przydatne, gdy chcesz poprawić ogólną przejrzystość obrazów. Odszumianie służy również do wstępnego przetwarzania obrazów przed dalszą analizą, taką jak rozpoznawanie, segmentacja i tak dalej. Filtry medianowe i filtry Wienera są powszechnie używane do odszumiania i wygładzania obrazów. Przyjrzyjmy się więc, jak zastosować filtry mediany i Wienera do obrazów w Python.
- Biblioteka Python do stosowania filtrów obrazu Mediana i Wiener
- Zastosuj filtr mediany do obrazu w Python
- Zastosuj filtr Gaussa Wienera do obrazu
- Motion Wiener Filtrowanie obrazu
- Bezpłatna aplikacja do edycji obrazów online
Biblioteka Python do stosowania filtrów obrazu Mediana i Wienera
Aby zastosować filtry mediany i Wienera na obrazach, użyjemy Aspose.Imaging for Python — potężnej biblioteki do przetwarzania obrazów, która pozwala bez wysiłku manipulować obrazami. Aby skorzystać z biblioteki, możesz pobrać lub zainstalować ją za pomocą następującego polecenia.
> pip install aspose-imaging-python-net
Zastosuj filtr mediany do obrazu w Python
Filtr medianowy jest powszechnie stosowaną metodą odszumiania, która wykorzystuje nieliniową technikę filtrowania cyfrowego. Poniżej przedstawiono kroki, aby zastosować filtr mediany do obrazu w Python.
- Najpierw załaduj obraz za pomocą metody Image.load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy MedianFilterOptions i zainicjuj ją rozmiarem prostokąta.
- Zastosuj filtr mediany przy użyciu metody RasterImage.filter(Rectangle, MedianFilterOptions).
- Na koniec zapisz przefiltrowany obraz za pomocą metody RasterImage.save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr mediany do obrazu w języku 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
# Załaduj zaszumiony obraz
with Image.load(os.path.join(data_dir, "template.gif")) as image:
# Prześlij obraz do RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Utwórz instancję klasy MedianFilterOptions i ustaw rozmiar, zastosuj filtr MedianFilterOptions do obiektu RasterImage i zapisz wynikowy obraz
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"))
Poniżej znajduje się obraz przed i po zastosowaniu filtra medianowego.
Zastosuj filtr Wienera Gaussa do obrazu w Python
Gauss Wiener to kolejna powszechnie stosowana metoda zwiększania wyrazistości i redukcji szumów na obrazach. Rzućmy okiem na kroki wymagane do zastosowania filtra Wienera Gaussa do obrazu w Python.
- Najpierw załaduj obraz za pomocą metody Image.load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy GaussWienerFilterOptions i zainicjuj ją rozmiarem promienia i wartością wygładzania.
- (Opcjonalnie) Aby uzyskać obraz w skali szarości, ustaw właściwość GaussWienerFilterOptions.grayscale na wartość true.
- Zastosuj filtr Wienera Gaussa za pomocą metody RasterImage.filter(Rectangle, GaussWienerFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr Wienera Gaussa do obrazu w języku 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
# Załaduj obraz
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
# Prześlij obraz do RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Utwórz instancję klasy GaussWienerFilterOptions i ustaw rozmiar promienia oraz wartość wygładzania.
options = GaussWienerFilterOptions(12, 3)
options.grayscale = True
# Zastosuj filtr MedianFilterOptions do obiektu RasterImage i zapisz wynikowy obraz
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"))
Poniżej znajduje się obraz przed i po zastosowaniu filtra Wienera Gaussa z opcją skali szarości.
Poniżej przedstawiono obraz przed i po zastosowaniu filtra Wienera Gaussa bez skali szarości.
Motion Wiener Filter dla obrazu w Python
Filtr wienera ruchu służy do zmniejszenia rozmycia lub degradacji spowodowanej rozmyciem ruchu. Ten rodzaj rozmycia występuje z powodu względnego ruchu między aparatem a obiektem. Poniżej przedstawiono kroki, aby zastosować filtr wienera ruchu do obrazu w Python.
- Najpierw załaduj obraz za pomocą metody Image.load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy MotionWienerFilterOptions i zainicjuj ją długością, wartością wygładzenia i kątem.
- Zastosuj filtr ruchu Wienera przy użyciu metody RasterImage.filter(Rectangle, MotionWienerFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr wiener ruchu do obrazu w języku 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
# Załaduj obraz
with Image.load(os.path.join(data_dir, "template.gif")) as image:
# Prześlij obraz do RasterImage
if aspycore.is_assignable(image, RasterImage):
raster_image = aspycore.as_of(image, RasterImage)
# Utwórz instancję klasy MotionWienerFilterOptions i ustaw długość, wartość wygładzania oraz kąt.
options = MotionWienerFilterOptions(50, 9, 90)
options.grayscale = True
# Zastosuj filtr MedianFilterOptions do obiektu RasterImage i zapisz wynikowy obraz
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"))
Bezpłatna biblioteka filtrów obrazów Python
Możesz uzyskać bezpłatną tymczasową licencję i stosować filtry mediany i Wienera do obrazów bez ograniczeń oceny.
Bezpłatna aplikacja do edycji obrazów online
Skorzystaj z naszego bezpłatnego internetowego narzędzia do edycji obrazów, aby edytować swoje obrazy online. Ten edytor obrazów wykorzystuje Aspose.Imaging for Python i nie prosi o utworzenie konta.
Wniosek
W tym artykule nauczyłeś się, jak stosować filtry mediany i Wienera do obrazów w Python. Kroki i przykłady kodu pokazały, jak zastosować różne typy filtrów w celu programistycznego odszumiania obrazów. Ponadto omówiliśmy, jak zredukować szum poruszających się obiektów na obrazie za pomocą filtra ruchu Wienera. Wreszcie, udostępniliśmy Ci aplikację do edycji obrazów online, która jest całkowicie bezpłatna i możesz z niej korzystać bez rejestracji.
Możesz dowiedzieć się więcej o bibliotece przetwarzania obrazów w Python, korzystając z documentation. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.