Python의 이미지에 중앙값 및 위너 필터 적용

다양한 경우에 시각적 품질을 향상시키기 위해 이미지의 노이즈를 제거해야 합니다. 이것은 이미지의 전반적인 선명도를 향상시키려는 경우에 유용합니다. 또한 노이즈 제거는 인식, 분할 등과 같은 추가 분석 전에 이미지를 전처리하는 데 사용됩니다. 중앙값 및 위너 필터는 일반적으로 이미지의 노이즈를 제거하고 부드럽게 하는 데 사용됩니다. 이제 Python에서 이미지에 중앙값 및 위너 필터를 적용하는 방법을 살펴보겠습니다.

Median 및 Wiener 이미지 필터를 적용하기 위한 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의 이미지에 가우스 위너 필터 적용

Gauss Wiener는 선명도를 높이고 이미지의 노이즈를 줄이기 위해 일반적으로 사용되는 또 다른 방법입니다. 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"))
Python의 이미지에 Motion Weiner 필터 적용

무료 Python 이미지 필터 라이브러리

무료 임시 라이선스를 받고 평가 제한 없이 이미지에 중앙값 및 위너 필터를 적용할 수 있습니다.

무료 온라인 이미지 편집 앱

무료 웹 기반 이미지 편집 도구를 사용하여 온라인에서 이미지를 편집하세요. 이 이미지 편집기는 Python용 Aspose.Imaging을 사용하며 계정 생성을 요구하지 않습니다.

결론

이 기사에서는 Python에서 이미지에 중앙값 및 위너 필터를 적용하는 방법을 배웠습니다. 단계 및 코드 샘플은 다양한 유형의 필터를 적용하여 프로그래밍 방식으로 이미지의 노이즈를 제거하는 방법을 보여줍니다. 또한 모션 위너 필터를 사용하여 이미지에서 움직이는 물체의 노이즈를 줄이는 방법을 다루었습니다. 마지막으로 완전 무료이며 가입하지 않고도 사용할 수 있는 온라인 이미지 편집 앱을 제공했습니다.

문서를 사용하여 Python 이미지 처리 라이브러리에 대해 자세히 알아볼 수 있습니다. 또한 포럼을 통해 질문을 공유할 수 있습니다.

또한보십시오