1. 커스텀 필터로 data폴더안에 있는 모든 .png파일 불러오기
import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
import glob
image_path = "./data"
image_list = glob.glob(os.path.join(image_path, "*.png")) # data 폴더안에 .png를 모두 불러옴
for path in image_list :
print(path)
image = cv2.imread(path, 1)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# custom filter
filter = np.array([[3,-2, -2 ], [-3, 7, -5], [5, -1, 0]])
"""
각각의 a, b, c는 필터의 가중치 값을 나타냅니다. 이 값은 이미지의 각 픽셀과 이웃한 픽셀 간의 계산에 사용됩니다.
필터는 이미지의 각 픽셀에 적용되며,
필터 윈도우 내의 픽셀 값과 필터의 가중치를 곱한 후 합산합니다.
"""
# custom filter 적용
custom_filter_img = cv2.filter2D(image, -1, filter) # -1 : 출력이미지의 뎁스를 입력이미지와 동일하게
plt.imshow(custom_filter_img)
plt.show()
2. 세피아 필터적용
image_path = "./data"
image_list = glob.glob(os.path.join(image_path, "*.png"))
for path in image_list :
print(path)
image = cv2.imread(path, 1)
# 효과필터 적용
filter_ = np.array([[0.272, 0.534, 0.131], [0.119,0.686, 0.168], [0.393, 0.769, 0.189]])
sepia_img = cv2.transform(image, filter_)
plt.imshow(sepia_img)
plt.show()
"""
cv2.transform 함수는 이미지의 전체적인 변환 작업에 사용되며,
cv2.filter2D 함수는 이미지 필터링 작업을 통해 픽셀 값을 변형하는 데 사용됩니다.
"""
3. 엠보스효과
import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
import glob
image_path = "./data"
image_list = glob.glob(os.path.join(image_path, "*.png"))
for path in image_list :
print(path)
image = cv2.imread(path, 1)
# 엠보스 효과
filter_temp = np.array([[0, 1, 0], [0, 0, 0], [0, -1, 0]])
emboss_img = cv2.filter2D(image, -1, filter_temp)
emboss_img = emboss_img + 128
plt.imshow(emboss_img)
plt.show()
'ComputerVision > [CV]' 카테고리의 다른 글
[CV] 영상 기본 세팅 2 (객체추적) (0) | 2023.06.12 |
---|---|
[CV] 이미지 기본세팅 8 (확장 - dilation, 침식 - erosion) (0) | 2023.06.08 |
[CV] 이미지 기본세팅 6 (머신러닝 특성 만들기-flatten()) (0) | 2023.06.08 |
[CV] 이미지 기본세팅 4 (이미지 회전, 상하좌우반전) (1) | 2023.06.08 |
[CV] 이미지 기본세팅 3 (블러, 선명도, 대비) (2) | 2023.06.08 |