Notice
Recent Posts
Recent Comments
Link
거의 알고리즘 일기장
4. OpenCv_ 마스크 연산과 ROI 본문
ROI : Region Of Interest, 관심 영역, 영상에서 특정 연산을 수행하고자 하는 임의의 부분 영역
import sys
import cv2
# # 마스크 영상을 이용한 영상 합성
# 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)
# # 방어코드
# if src is None or mask is None or dst is None:
# print('Image load failed!')
# sys.exit()
# #사이즈가 같아야하고 src, dst는 타입도 같아야한다! mask는 그레이스케일
# cv2.copyTo(src, mask, dst)
# # boolean 인덱싱
# # dst[mask > 0] = src[mask > 0]
# cv2.imshow('src', src)
# cv2.imshow('dst', dst)
# cv2.imshow('mask', mask)
# cv2.waitKey()
# cv2.destroyAllWindows()
# 알파 채널을 마스크 영상으로 이용
src = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
logo = cv2.imread('opencv-logo-white.png', cv2.IMREAD_UNCHANGED)
# 방어 코드
if src is None or logo is None:
print('Image load failed!')
sys.exit()
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)
#crop[mask > 0] = logo[mask > 0]
cv2.imshow('src', src)
cv2.imshow('logo', logo)
cv2.imshow('mask', mask)
cv2.waitKey()
cv2.destroyAllWindows()
반응형
'OpenCV' 카테고리의 다른 글
5. OpenCv_ 그리기 함수 (0) | 2020.09.21 |
---|---|
3. OpenCV_ 영상 생성, 복사, 부분 추출 (0) | 2020.09.18 |
2. OpenCV_ 픽셀값 참조 (0) | 2020.09.18 |
1. OpenCV_ 파일의 종류, cv2 _이미지 불러오기 (0) | 2020.09.17 |
Comments