cv2.copyTo(src, mask, dst=None) -> dst
src = cv2.imread('airplane.bmp', cv2.IMREAD_COLOR)
mask = cv2.imread('mask_plane.bmp', cv2_IMREAD_GRAYSCALE)
dst = cv2.imread('field.bmp', cv2.IMREAD_COLOR)
cv2.copyTo(src, mask, dst)
- src, mask, dst는 모두 크기가 같아야 한다.
- src와 dst는 같은 타입이어야 하고, mask는 그레이스케일 타입의 이진 영상
dst[mask > 0] = src[mask > 0]
src = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
logo = cv2.imread('opencv-logo-white.png', cv2.IMREAD_UNCHANGED)
mask = logo[:, :, 3] # mask는 알파 채널로 만든 마스크 영상
logo = logo[:, :, :-1] # logo는 b, g, r 3채널로 구성된 컬러 영상
h, w = mask.shape[:2]
crop = src[10:10+h, 10:10+w] # logo, mask와 같은 크기의 부분 영상 추출
cv2.copyTo(logo, mask, crop)
cv2.IMREAD_UNCHANGED
이미지 파일을 alpha channel까지 포함하여 읽어들인다. (
png
파일 한정인듯 하다)