cv2.THRESH_BINARY : 픽셀값이 문턱값보다 크면 value, 아니면 0을 할당
cv2.THRESH_BINARY_INV : 픽셀값이 문턱값보다 크면 0, 아니면 value를 할당
cv2.THRESH_TRUNC : 픽셀값이 문턱값보다 크면 문턱값, 아니면 픽셀값을 그대로 할당
cv2.THRESH_TOZERO : 픽셀값이 문턱값보다 크면 픽셀값, 아니면 0을 할당
cv2.THRESH_TOZERO_INV : 픽셀값이 문턱값보다 크면 0, 아니면 픽셀값을 할당
이미지 처리 방법
픽셀기반 처리 : 픽셀 단위로 처리
블록기반 처리 : 블록(픽셀을 그룹화한 것) 단위로 처리 - 필터
주파수 기반 처리 : 주파수 영역으로 변환하여 처리 - FFT, DCT, WT 등
이미지 속성
OPENCV 이미지를 불러왔을때는 BGR의 형태로 변환하여 가져온다는 것이고, Matplotlib으로 불러올때는 rgb의 형태로 이미지를 가져온다. 이미지를 처리할시 이점을 항상 주의해야함!!
import cv2
# 색감 설정값 cv2.IMREAD_COLOR
img = cv2.imread('data/lenna.png')
print(img.shape) # 이미지 크기
print(img.size) # 이미지 픽셀 개수
print(img.dtype) # 데이터 타입 # 정수 인트
# 색상공간 변형
plt.imshow(img)
# 픽셀 단위로 데이터 확인
b,g,r = img[100, 200]
# 배열[행,열]
print('b:', b)
print('g:', g)
print('r:', r)
import cv2
# 색감 설정값 cv2.IMREAD_COLOR
img = cv2.imread('data/lenna.png')
# 색상공간 변형 bgr -> rgb
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 픽셀 단위로 데이터 확인
color = img[100, 200]
# 배열[행,열]
print(color)
plt.imshow(img)
픽셀값 변경해보기
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('data/ryan.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 블록 단위로 데이터 변경 -> 검은색 표현
img[400:450,300:350] = [0,0,0] # 배열 인덱싱 방법 [행(y),열(x)]
plt.imshow(img)
plt.show()
ROI(Region of Image) : 관심영역
이미지 처리시 필요한 부분에 접근하는 것(얼굴, 손, 눈, 코, 입, 귀..)
# img 라이언 얼굴 영역 잘라보기
img_cut = img[100:520,200:700]
plt.imshow(img_cut)
plt.show()