Застосуйте медіанний і вінерівський фільтри до зображень у Python

У різних випадках вам потрібно зменшити шуми зображень, щоб покращити їх візуальну якість. Це корисно, коли ви хочете покращити загальну чіткість ваших зображень. Крім того, шумозаглушення використовується для попередньої обробки зображень перед подальшим аналізом, таким як розпізнавання, сегментація тощо. Медіанний і Вінер-фільтри зазвичай використовуються для усунення шумів і згладжування зображень. Отже, давайте розглянемо, як застосувати медіанний і вінер-фільтри до зображень у Python.

Бібліотека Python для застосування медіанних фільтрів і фільтрів зображень Вінера

Щоб застосувати медіанний і вінерівський фільтри до зображень, ми будемо використовувати Aspose.Imaging for Python — потужну бібліотеку обробки зображень, яка дозволяє без зусиль маніпулювати зображеннями. Щоб скористатися бібліотекою, ви можете завантажити або встановити її за допомогою наступної команди.

> pip install aspose-imaging-python-net 

Застосуйте медіанний фільтр до зображення в Python

Медіанний фільтр — це широко використовуваний метод усунення шумів, який використовує техніку нелінійної цифрової фільтрації. Нижче наведено кроки для застосування медіанного фільтра до зображення в Python.

  • Спочатку завантажте зображення за допомогою методу Image.load().
  • Потім переведіть зображення до типу RasterImage.
  • Створіть екземпляр класу MedianFilterOptions та ініціалізуйте його розміром прямокутника.
  • Застосуйте медіанний фільтр за допомогою методу RasterImage.filter(Rectangle, MedianFilterOptions).
  • Нарешті, збережіть відфільтроване зображення за допомогою методу RasterImage.save().

У наведеному нижче прикладі коду показано, як застосувати медіанний фільтр до зображення в 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
# Завантажте зображення з шумом 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Переведіть зображення в RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Створіть екземпляр класу MedianFilterOptions і встановіть розмір, застосуйте фільтр MedianFilterOptions до об’єкта RasterImage і збережіть отримане зображення
		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"))

Нижче наведено зображення до та після застосування медіанного фільтра.

Застосуйте медіанний фільтр до зображення Python

Застосуйте фільтр Гауса Вінера до зображення в Python

Гаусс Вінер — ще один широко використовуваний метод для підвищення чіткості та зменшення шуму на зображеннях. Давайте розглянемо кроки, необхідні для застосування фільтра Гаусса Вінера до зображення в Python.

  • Спочатку завантажте зображення за допомогою методу Image.load().
  • Потім переведіть зображення до типу RasterImage.
  • Створіть екземпляр класу GaussWienerFilterOptions та ініціалізуйте його розміром радіуса та згладженим значенням.
  • (Необов’язково) Щоб отримати зображення у відтінках сірого, установіть для властивості GaussWienerFilterOptions.grayscale значення true.
  • Застосуйте фільтр Гауса Вінера за допомогою методу RasterImage.filter(Rectangle, GaussWienerFilterOptions).
  • Нарешті, збережіть отримане зображення за допомогою методу RasterImage.save().

У наведеному нижче прикладі коду показано, як застосувати фільтр Гауса Вінера до зображення в 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
# Завантажте зображення
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# Переведіть зображення в RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Створіть екземпляр класу GaussWienerFilterOptions і встановіть розмір радіуса та значення гладкості.
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# Застосуйте фільтр MedianFilterOptions до об’єкта RasterImage і збережіть отримане зображення
		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"))

Нижче наведено зображення до та після застосування Вінер-фільтра Гауса з опцією відтінків сірого.

Застосуйте фільтр Гауса Вайнера до відтінків сірого зображення

Нижче наведено зображення до та після застосування Вінер-фільтра Гаусса без відтінків сірого.

Застосуйте кольоровий фільтр Гауса Вайнера до зображення

Фільтр Вінера руху для зображення в Python

Фільтр Вінер руху використовується для зменшення розмиття або погіршення якості, спричиненого розмиттям руху. Таке розмиття виникає через відносний рух між камерою та об’єктом. Нижче наведено кроки, щоб застосувати фільтр руху Вінера до зображення в Python.

  • Спочатку завантажте зображення за допомогою методу Image.load().
  • Потім переведіть зображення до типу RasterImage.
  • Створіть екземпляр класу MotionWienerFilterOptions та ініціалізуйте його довжиною, рівним значенням і кутом.
  • Застосуйте фільтр руху за допомогою методу RasterImage.filter(Rectangle, MotionWienerFilterOptions).
  • Нарешті, збережіть отримане зображення за допомогою методу RasterImage.save().

У наведеному нижче прикладі коду показано, як застосувати фільтр руху Вінера до зображення в 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
# Завантажте зображення
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# Переведіть зображення в RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# Створіть екземпляр класу MotionWienerFilterOptions і встановіть довжину, значення гладкості та кут.
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# Застосуйте фільтр MedianFilterOptions до об’єкта RasterImage та збережіть отримане зображення
		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"))
Застосуйте фільтр Motion Weiner до зображення в Python

Безкоштовна бібліотека фільтрів зображень Python

Ви можете отримати безкоштовну тимчасову ліцензію і застосувати медіанний і вінеровий фільтри до зображень без обмежень оцінки.

Безкоштовний онлайн-додаток для редагування зображень

Використовуйте наш безкоштовний веб-інструмент для редагування зображень, щоб редагувати свої зображення онлайн. Цей редактор зображень використовує Aspose.Imaging for Python і не просить вас створити обліковий запис.

Висновок

У цій статті ви навчилися застосовувати медіанний і вінерівський фільтри до зображень у Python. Кроки та зразки коду продемонстрували, як програмно застосовувати різні типи фільтрів для усунення шумів у зображеннях. Крім того, ми розглянули, як зменшити шум рухомих об’єктів на зображенні за допомогою фільтра Вінера руху. Нарешті, ми надали вам онлайн-програму для редагування зображень, яка є абсолютно безкоштовною, і ви можете використовувати її без реєстрації.

Ви можете дізнатися більше про бібліотеку обробки зображень Python за допомогою документації. Крім того, ви можете поділитися своїми запитами з нами через наш форум.

Дивись також