▷ 오늘 학습 계획: OpenCV 강의(4~5)
OpenCV는 영상 데이터를 numpy.ndarray로 표현
img1[:, :] = 255 #grayscale img1의 전체 픽셀 값을 255로(흰색)
img2[:, :] = (0, 0, 255) #color img2의 Red 픽셀 값을 255로
shape: 각 차원의 크기. (h,w) 또는 (h,w,3)
dtype: 원소의 데이터 타입. 일반적인 영상은 numpy.unit8
img2 = img1 → 참조(img1이 수정되면 img2도 같이 반영)
img3 = img1.copy() → 복사(img1이 수정되면 img3는 바뀌지 않음)
ROI(Region of Interest): 관심영역
영상에서 특정 연산을 수행하고자 하는 임의의 부분 영역
마스크 연산
OpenCV는 일부 함수에 대해 ROI 연산을 지원한다.
(cv2.copyTo(), cv2.calcHist(), cv2.bitwise_or(), cv2.matchTemplate())
마스크 영상을 인자로 함께 전달해야 한다.(cv2.CV_8UC1, 그레이스케일)
마스크 영상의 픽셀 값이 0이 아닌 위치에서만 연산이 수행된다.
(보통 0 또는 255로 구성된 이진 영상 사용)
마스크 연산을 지원하는 픽셀 값 복사 함수
cv2.copyTo(src, mask, dst=None)
src: 입력 영상
mask: 마스크 영상(cv2.CV_8U, numpy.unit8)
dst: 출력 영상src, mask, dst는 모두 크기가 같아야 하고 src와 dst는 같은 타입
알파 채널이 있는 PNG 파일을 다른 영상에 합성: 알파 채널을 마스크 영상으로
pt1, pt2: 직선의 시작점과 끝점, (x,y) 튜플 형태
color: 선 색상 또는 밝기, (B,G,R) 튜플 또는 정수값
thickness: 선 두께(기본 1)
lineType: cv2.LINE_4, cv2.LINE_8(기본값), cv2.LINE_AA
pt1, pt2: 사각형의 두 꼭지점 좌표, (x,y) 튜플
rec: 사각형 위치 정보, (x,y,w,h) 튜플
thickness: 선 두께(기본 1). 음수(-1)를 지정하면 내부를 채움
center: 원의 중심 좌표. (x,y) 튜플
pts: 다각형 외곽 점들의 좌표 배열(numpy.ndarray의 리스트)
isClosed: 폐곡선 True/False
text: 출력할 문자열
org: 영상에서 문자열을 출력할 위치의 좌측 하단 좌표. (x,y) 튜플
fontFace: 폰트 종류(cv2.FONT_HERSHEY_SIMPLEX 등)
fontScale: 폰트 크기 확대/축소 비율
bottomLeftOrigin: True(영상의 좌측 하단을 원점으로 간주)/False(기본값)
cv.VideoCapture(filename, apiPreference=None)
filename: 비디오 파일 이름, 정지 영상 시퀀스, 비디오 스트림 URL 등
cv2.VideoCapture.open(filename, apiPrefernece=None) → True/False
cv2.VideoCapture.get(propId) → 성공하면 해당 속성 값(float), 실패하면 0
propId: 속성 상수(VideoCaptureProperties)
CAP_PROP_FRAME_WIDTH: 프레임 가로 크기
CAP_PROP_FRAME_HEIGHT: 프레임 세로 크기
CAP_PROP_FPS: 초당 프레임 수
CAP_PROP_FRAME_COUNT: 비디오 파일의 총 프레임 수
CAP_PROP_POS_MSEC: 밀리초 단위로 현재 위치
CAP_PROP_POS_FRAMES: 현재 프레임 번호
CAP_PROP_EXPOSURE: 노출
cv2.VideoCapture.set(propId, value) → True/False
propId: 속성 상수
value: 속성값
cv2.VideoWriter(filename, fourcc, fps, frameSize, isColor=None)
cv2.VideoWriter.open(filename, fourcc, fps, frameSize, isColor=None) → True/False
fps: 초당 프레임 수
frameSize: 프레임 크기. (width, height) 튜플
isColor: True/False
동영상 파일의 코덱, 압축 방식, 색상, 픽셀 포맷 등을 정의하는 정수 값
▷ 내일 학습 계획: OpenCV 강의(6~8)
[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]