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 |
댓글