728x90
간혹 opencv로 카메라 스트림에서 1 프레임씩 이미지를 가져오려는 경우가 있을 수 있다.
하지만 실시간으로 비디오를 스트리밍하는 게 아니라 원할 때 1 프레임씩 가져올 때 요청 순간의 프레임이 아닌 이전 시점의 프레임을 가져온다.
이는 opencv에서 카메라를 열 때 이전 프레임을 얼마나 담아둘지 버퍼 사이즈를 지정하기 때문인데 이를 조절하도록 해야 한다.
버퍼의 크기는 아래와 같이 조절할 수 있다.
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
그리고 이 상황에서 요청 순간의 프레임을 받아오려면 read()로 버퍼를 비운 뒤에 다시 read()를 호출해 주면 된다.
cap.read() # 버퍼 비우기
ret, frame = cap.read()
728x90
'Python' 카테고리의 다른 글
[Python] rembg로 배경을 지워보기 (0) | 2025.01.09 |
---|---|
pyinstaller로 빌드된 파이썬 프로그램에서 리소스 경로 가져오기 (0) | 2024.12.24 |
[Python] 외부 프로세스 실행시키기 (0) | 2024.11.25 |
F5-TTS로 초간단&초경량 TTS 개발하기 (1) | 2024.11.23 |