OpenCV는 이미지 처리를 위한 최고의 파이썬 패키지 중 하나입니다. 또한 신호에 노이즈가 첨부된 것처럼 이미지에도 주로 소스 자체(카메라 센서)에서 발생하는 다양한 유형의 노이즈가 포함되어 있습니다. Python OpenCV 패키지는 흐림이라고도 하는 이미지 평활화 방법을 제공합니다. 이것이 우리가 이 섹션에서 할 일입니다. 일반적인 기술 중 하나는 이미지 흐림에 가우시안 필터(Gf)를 사용하는 것입니다. 이렇게 하면 이미지의 날카로운 모서리가 부드러워지고 너무 많이 흐려지는 현상이 최소화됩니다.
구문
cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType=BORDER_DEFAULT]]] )
어디에-
-
src – 입력 이미지
-
dst – 출력 이미지
-
ksize – 가우스 커널 크기[ 높이 너비]. ksize가 [0 0]으로 설정되면 ksize는 시그마 값에서 계산됩니다.
-
시그마X – X축(가로 방향)에 따른 커널 표준 편차.
-
시그마Y – Y축(수직 방향)에 따른 커널 표준 편차.
-
테두리 유형 – 커널이 이미지 경계에 적용되는 동안 이미지 경계를 지정합니다. 가능한 값은 다음과 같습니다. cv.BORDER_CONSTANT, cv.BORDER_REPLICATE, cv.BORDER_REFLECT, cv.BORDER_WRAP, cv.BORDER_DEFAULT, cv.BORDER_ISOLATED, cv.BORDER_TRANSPARENT 등
다음은 OpenCV 패키지를 사용하여 이미지를 가우시안 흐리게 처리하는 프로그램입니다.
import cv2 import numpy # read image src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED) # apply guassian blur on src image dst = cv2.GaussianBlur(src,(3,3),cv2.BORDER_DEFAULT) # display input and output image cv2.imshow("Gaussian Blur",numpy.hstack((src, dst))) cv2.waitKey(0) # waits until a key is pressed cv2.destroyAllWindows() # destroys the window showing image
결과
두 이미지가 거의 비슷해 보입니다(원본/흐림 효과). 이제 커널 크기를 늘리고 결과를 관찰해 보겠습니다.
dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)
이제 두 이미지가 명확하게 구분됩니다.