Notice
Recent Posts
Recent Comments
Link
Koo's.Co
[OpenCV] 마스크 연산, ROI(Region of Interest) 본문
1. ROI(Region of Interest)
연산에서 특정 연산을 수행하고자 하는 임의의 부분 영역
2. 마스크 연산
- openCV는 일부 함수에 대해 ROI 연산을 지원, 마스크 영상을 인자로 함께 전달해야 한다
- 마스크 영상은 cv2.CV_8UC1 (grayscale image)
- 마스크 영상의 픽셀값이 0이 아닌 위치에서만 연산이 수행됨 (픽셀 0 = 검정색)
- 마스크 영상으로는 0, 255로 구성된 binary image를 사용
3. copyTo
cv2.copyTo(src, mask, dst=None) -> dst
- src: 입력 영상
- mask: 마스크 영상, cv2.CV_8U (numpy.uint8)
- dst: 출력 영상. src와 크기, 타입이 같은 dst를 입력으로 지정하면 dst를 생성하지 않고 연산 수행
그렇지 않은 경우 dst를 새로 생성하여 연산을 수행한 후 반환
4. png 파일을 이용한 마스크 추출
import sys
import cv2
src = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)
if src is None:
print('Image load failed')
sys.exit()
mask = src[:, :, -1] # alpha채널 사용
src = src[:, :, 3] # 색상 채널 사용
dst = cv2.imread('image2.jpg', cv2.IMREAD_COLOR())
if dst is None:
print('Image load failed')
sys.exit()
h, w = src.shape[:2]
# 두 영상의 크기가 다르면 정상적으로 합칠 수 없기 때문에
# crop을 이용해 동일한 크기의 view를 만들어 합침
crop = dst[10:10+h, 10:10+w]
cv2.copyTo(src, mask, crop)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
'Python > 영상처리' 카테고리의 다른 글
[OpenCV] 컬러 영상 기본 함수 (0) | 2023.01.04 |
---|---|
[OpenCV] 산술 연산 (0) | 2023.01.04 |
[matplotlib] 영상 출력 (0) | 2023.01.04 |
[OpenCV] 기본 함수 (0) | 2023.01.04 |
[OpenCV] 영상출력하기 (0) | 2020.09.14 |
Comments