본문 바로가기
Data Analysis/Data Analysis & Image Processing

12. OpenCV Filtering

by SeleniumBindingProtein 2022. 4. 16.
728x90
반응형
#필터링
#이미지에 커널을 적용하여 이미지를 흐리게(Blurring = Smoothing) 처리할 수 있습니다.
#이미지를 흐리게 만들면 노이즈 및 손상을 줄일 수 있습니다.
#특정한 이미지에서 커널(Kernel)을 적용해 컨볼루션 계산하여 필터링을 수행할 수 있습니다.
#직접 커널을 생성하여 필터 적용하기

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

image = cv2.imread('cat2.jpg')
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

size = 10
kernel = np.ones((size, size), np.float32) / (size ** 2)
print(kernel)

dst = cv2.filter2D(image, -1, kernel)
plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB))
plt.show()
[[0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]
 [0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01]]
 
#Basic Blurring
import cv2
import matplotlib.pyplot as plt

image = cv2.imread('cat2.jpg')
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

dst = cv2.blur(image, (4, 4))
plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB))
plt.show()
#Gaussian Blur
import cv2

image = cv2.imread('cat2.jpg')
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

# kernel_size: 홀수
dst = cv2.GaussianBlur(image, (5, 5), 0)
plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB))
plt.show()
 

 

 
728x90
반응형

'Data Analysis > Data Analysis & Image Processing' 카테고리의 다른 글

14. KNN 숫자 인식 예제  (0) 2022.04.16
13. KNN Algorithm  (0) 2022.04.16
11. OpenCV Contours 처리  (0) 2022.04.16
10. OpenCV Contours  (0) 2022.04.16
9. OpenCV 도형 그리기  (0) 2022.04.16

댓글