비전

[OpenCV] 마스킹

왕초보코딩러 2024. 8. 18. 17:20
728x90

 

opencv 라이브러리 임포트

import cv2

 

 

검정 색: (0, 0, 0)

흰 색: (255, 255, 255)

 


마스킹하기

관심 있는 영역은 0이 아닌 픽셀 값으로 채우고

그 외 영역은 0 픽셀 값으로 채운다

 

픽셀 값 복사 함수

# 마스킹 이미지에서 0이 아닌 픽셀만 복사한다
cv2.copyTo([원본 이미지], [마스킹 이미지], [픽셀이 0인 부분에 들어갈 이미지])

원본 이미지, 마스킹 이미지, 새롭게 만들어질 이미지 모두 크기가 같아야 한다

[픽셀이 0인 부분에 들어갈 이미지]는없어도 된다.   

 

(좌) 원본 이미지 / (우) 마스킹 이미지

 

 

# 셋 다 사이즈가 똑같아야 함
src = cv2.imread('data/cat.jpg') # 원본 이미지
mask = cv2.imread('data/cat_mask.jpg') # 마스크 이미지

# 이미지 복사. 원본을 마스킹해서 새로운 곳에 갖다 붙여라
dst = cv2.copyTo(src, mask)

cv2.imshow('masking', dst)

cv2.waitKey()
cv2.destroyAllWindows()

새로 만들어질 이미지

짜잔

 

 

이번에는 픽셀이 검정 부분(0인 부분)에 들어갈 이미지를 넣어볼게요

 

# 셋 다 사이즈가 똑같아야 함
src = cv2.imread('data/cat.jpg') # 원본 이미지
mask = cv2.imread('data/cat_mask.jpg') # 마스크 이미지
dst = cv2.imread('data/cat_redcarpet.jpg') # 검은 색 부분에 들어갈 값

# 이미지 복사. 원본을 마스킹해서 새로운 곳에 갖다 붙여라
cv2.copyTo(src, mask, dst)

cv2.imshow('masking', dst)

cv2.waitKey()
cv2.destroyAllWindows()

짝짝짝~~

 

 

 

좀 더 자세하게

https://github.com/stonegyoung/OpenCV/blob/main/cat_masking.ipynb

 

OpenCV/cat_masking.ipynb at main · stonegyoung/OpenCV

컴퓨터 비전 공부. Contribute to stonegyoung/OpenCV development by creating an account on GitHub.

github.com

 

 

'비전' 카테고리의 다른 글

[MediaPipe] 포즈 인식  (0) 2024.08.25
[MediaPipe] 얼굴 인식  (0) 2024.08.23
[OpenCV] 특정 색 검출  (0) 2024.08.20
[OpenCV] 그리기 함수  (0) 2024.08.19
[OpenCV] 이미지, 동영상  (0) 2024.08.17