[python] 파이썬을 사용한 이미지 필터링 기법

이미지 처리는 컴퓨터 비전 분야에서 중요한 역할을 합니다. 이미지를 보다 선명하게 만들거나 노이즈를 제거하기 위해서는 이미지 필터링 기법을 사용할 수 있습니다. 이번에는 파이썬을 사용하여 이미지 필터링을 수행하는 몇 가지 기법에 대해서 알아보겠습니다.

1. 평균 필터링 (Mean Filtering)

평균 필터링은 이미지의 픽셀 값을 주변 픽셀들의 평균값으로 대체하는 기법입니다. 이는 노이즈를 완화시키는 효과가 있습니다. 다음은 파이썬에서 평균 필터링을 수행하는 코드입니다.

import cv2
import numpy as np

def mean_filtering(image):
    filtered_image = cv2.blur(image, (5, 5)) # 필터 크기는 (5, 5)로 설정
    return filtered_image

image = cv2.imread("image.jpg")
filtered_image = mean_filtering(image)
cv2.imshow("Filtered Image", filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

2. 가우시안 필터링 (Gaussian Filtering)

가우시안 필터링은 이미지의 픽셀 값을 주변 픽셀들의 가중치 평균값으로 대체하는 기법입니다. 가중치는 거리에 기반하여 계산됩니다. 가우시안 필터링은 평균 필터링에 비해 더 부드러운 효과가 있습니다.

import cv2
import numpy as np

def gaussian_filtering(image):
    filtered_image = cv2.GaussianBlur(image, (5, 5), 0) # 필터 크기는 (5, 5)로 설정
    return filtered_image

image = cv2.imread("image.jpg")
filtered_image = gaussian_filtering(image)
cv2.imshow("Filtered Image", filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

3. 미디안 필터링 (Median Filtering)

미디안 필터링은 주변 픽셀들의 중앙값으로 대체하는 기법입니다. 이는 소금-후추 잡음 등의 특정 종류의 노이즈를 감소시키는데 효과적입니다.

import cv2
import numpy as np

def median_filtering(image):
    filtered_image = cv2.medianBlur(image, 5) # 필터 크기는 5로 설정
    return filtered_image

image = cv2.imread("image.jpg")
filtered_image = median_filtering(image)
cv2.imshow("Filtered Image", filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 예제 코드에서 “image.jpg”는 필터링할 대상 이미지 파일의 경로를 나타냅니다. 필터링된 이미지는 “Filtered Image”라는 창에 표시됩니다.

이외에도 다양한 이미지 필터링 기법이 존재하며, OpenCV 라이브러리를 통해 다양한 기능을 제공받을 수 있습니다.

이미지 필터링에 대한 더 자세한 내용은 OpenCV 공식 문서를 참고하시기 바랍니다.