Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩
- 파이썬
- 영어기초
- 동사
- machinevision
- Vision
- 3dprinter
- 머신비전
- 머신러닝
- 오픽
- 석사
- 초보영어
- 직장인
- 특수대학원
- Ai
- Python
- 영어공부
- 인공지능
- 딥러닝
- 파이썬gui
- 대학원
- coding
- C언어
- opencv
- ComputerVision
- 영어회화
- 4차산업
- 산업대학원
- 영어
- 프로그래밍
Archives
- Today
- Total
미래기술연구소
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 13 회차 본문
728x90
반응형
마스크 연산과 ROI
▪ ROI
• Region of Interest, 관심 영역
• 영상에서 특정 연산을 수행하고자 하는 임의의 부분 영역
▪ 마스크 연산
• OpenCV는 일부 함수에 대해 ROI 연산을 지원하며, 이때 마스크 영상을 인자로 함께 전달해야 함
(e.g.) cv2.copyTo(), cv2.calcHist(), cv2.bitwise_or(), cv2.matchTemplate(), etc.
• 마스크 영상은 cv2.CV_8UC1 타입(그레이스케일 영상)
• 마스크 영상의 픽셀 값이 0이 아닌 위치에서만 연산이 수행됨 → 보통 마스크 영상으로는 0 또는 255로 구성된 이진 영상(binary image)을 사용
▪ 마스크 연산을 지원하는 픽셀 값 복사 함수
• src: 입력 영상
• mask: 마스크 영상. cv2.CV_8U. (numpy.uint8) 0이 아닌 픽셀에 대해서만 복사 연산을 수행.
• dst: 출력 영상. 만약 src와 크기 및 타입이 같은 dst를 입력으로 지정하면 dst를 새로 생성하지 않고 연산을 수행. 그렇지않으면 dst를 새로 생성하여 연산을 수행한 후 반환함
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()
cv2.copyTo(src, mask, dst)
# 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()
728x90
반응형
'etc > FastCampus 챌린지' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 15 회차 (0) | 2020.11.02 |
---|---|
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 14 회차 (0) | 2020.11.01 |
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 12 회차 (0) | 2020.10.30 |
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 11 회차 (0) | 2020.10.29 |
[패스트캠퍼스 수강 후기] 컴퓨터비전인강 100% 환급 챌린지 10 회차 (0) | 2020.10.28 |