728x90
반응형
import numpy as np
import cv2
import matplotlib.pyplot as plt
image_bgr=cv2.imread('../images/cat.jpg')
image=cv2.cvtColor(image_bgr,cv2.COLOR_BGR2RGB)
print('image.shape =',image.shape)
filter=np.array([[
[1,1,1],
[1,1,1],
[1,1,1]
],[
[1,1,1],
[1,1,1],
[1,1,1]
],[
[1,1,1],
[1,1,1],
[1,1,1]
]])/9
image_pad=np.pad(image,((1,1),(1,1),(0,0)))
print('image_pad.shape =', image_pad.shape)
convolution=np.zeros_like(image)
for row in range(image.shape[0]):
for col in range(image.shape[1]):
for cha in range(image.shape[2]):
window=image_pad[row:row+3, col:col+3, cha]
convolution[row,col,cha]=np.clip(np.sum(window[...,cha]*filter[...,cha]),0,255)
image=[image, convolution]
label=['color','convolution']
plt.figure(figsize=(10,5))
for i in range(len(image)):
plt.subplot(1,2,i+1)
plt.xticks([])
plt.yticks([])
plt.imshow(image[i])
plt.xlabel(label[i])
plt.show()
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[딥러닝] 필터 역할 살펴보기 - 연습문제 (0) | 2023.11.01 |
---|---|
[딥러닝] 필터 역할 살펴보기(다양한 이미지 출력) (0) | 2023.11.01 |
[딥러닝] 필터 역할 살펴보기(부드러운 이미지 추출하기) (0) | 2023.10.31 |
[딥러닝] 알고리즘 CNN신경망 입력 필터 늘리기 (0) | 2023.10.31 |
[딥러닝] 알고리즘 CNN 신경망 (0) | 2023.10.31 |