즐거운프로그래밍

[딥러닝] 필터 역할 살펴보기(컬러이미지로 적용하기)

수수께끼 고양이 2023. 11. 1. 11:17
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
반응형