OpenCV Read image or video
Ref: https://docs.opencv.org/master/
Read image
image = cv.imread(fileName, flag=cv.IMREAD_COLOR)
- @brief 이미지 읽기
- @param fileName: string 파일 경로
- @param flag
cv.IMREAD_COLOR
: BGRcv.IMREAD_GRAYSCALE
cv.IMREAD_UNCHANGED
- @return numpy.ndarray (y축, x축, pixel 원소 수) 3 차원 배열
cv.imshow(title, image)
key_value = cv.waitKey(delay=0) & 0xFF
cv.destroyWindows(title)
cv.destroyAllWindows()
- @brief 이미지 창에 표시, title을 동일하게 설정한 후, image만 변경하면 동영상처럼 보임
- @param title: string
- @param image: numpy.ndarray 이미지 3 차원 배열
cv.imwrite(fileName, image)
- @brief 이미지 저장
- @param fileName: string 파일 경로
- @param image: numpy.ndarray 이미지 3 차원 배열
Read video, cam
cv.VideoCapture
class cv.VideoCapture(index|filename, apiPreference=cv.CAP_ANY)
- @brief VideoCapture 인스턴스 생성
- @param index|filename: 캠의 인덱스 또는 동영상 파일 경로
- @param apiPreference: 영상을 처리할 api 선택
cv.CAP_ANY
cv.CAP_V4L2
- https://docs.opencv.org/master/d4/d15/group__videoio__flags__base.html
- @return cv.VideoCapture
정보
Linux(debian)에서 비디오의 인덱스는 /dev/video 뒤의 숫자입니다. 아래 명령어를 통해 캠 정보를 확인할 수 있습니다.(/dev/video[인덱스]) v4l2-ctl --all --list-formats-ext -d /dev/video0
is_success = cv.VideoCapture.isOpened()
- @brief 캠 또는 파일이 정상적으로 열렸는지 확인
value = cv.VideoCapture.get(propid)
- @brief 설정된 속성 값 확인
- @param propid
cv.CAP_PROP_FRAME_WIDTH
cv.CAP_PROP_FRAME_HEIGHT
cv.CAP_PROP_FOURCC
- https://docs.opencv.org/master/d4/d15/group__videoio__flags__base.html
is_success = cv.VideoCapture.set(propid, value)
- @brief 속성 설정
- @param propid
cv.CAP_PROP_FRAME_WIDTH
cv.CAP_PROP_FRAME_HEIGHT
cv.CAP_PROP_FOURCC
- https://docs.opencv.org/master/d4/d15/group__videoio__flags__base.html
is_success, image = cv.VideoCapture.read()
- @brief 다음 프레임을 읽어 이미지로 반환
- @return image (BGR)
cv.VideoCapture.release()
- @brief 파일 또는 캠 닫기