인공지능/Computer Vision

[CV - Python] 가우시안 필터의 성질

바보1 2022. 10. 15. 01:41

가우시안 필터는 이미지의 전체적인 구조를 떨어뜨리지 않고, 유지하면서 스케일을 크게하는 효과를 가지고 있다.

즉 샘플링에 따른 이미지 정보의 손실을 최소화 하면서, 해당 스케일에서의 이미지 구조를 잘 보존하고 있다.

 

지금까지 알려진 필터 중에는 가우시안 필터가 유일하다고 한다.

 

아래는 가우시안 필터를 적용했을 때, 250, : 픽셀들을 그래프로 나타낸 코드이다.

import cv2
import numpy as np
import matplotlib.pyplot as plt


img = cv2.imread('Lenna.png', cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (500, 700))


fig, ax = plt.subplots(2, 3, figsize = (9, 9))
k = 0

for i in range(0, 2):
    for j in range(0, 3):
        # cv2.imshow(f'Gaussian_{i + j}', img)
        ax[i, j].set(xlim = [0, 500], ylim = [0, 255])
        ax[i, j].plot(np.arange(0, img.shape[1]), img[250, :], color = 'b')
        ax[i, j].set_title(f'Gaussian_{k}')
        k += 1
        img = cv2.GaussianBlur(img, ksize=(9, 9), sigmaX = 5, sigmaY = 5)


plt.show()

보면 극대점과 극소점이 유지되는 것을 볼 수 있다.