2021.02.03 - [파이썬] - [파이썬] ESP CAM의 스트리밍 영상 opencv로 불러오기
지난 글에서 속도가 저하되는 부분이 있어 수정했습니다.
수정 내용은 주석에 기록했으니 참고해 주시기 바랍니다.
import cv2
import numpy as np
from urllib.request import urlopen
url = "http://192.168.0.12/stream" #ESP CAM의 영상 스트리밍 주소
stream = urlopen(url)
buffer = b''
while True:
buffer += stream.read(4096)
head = buffer.find(b'\xff\xd8')
end = buffer.find(b'\xff\xd9')
try: #가끔 비어있는 버퍼를 받아 오류가 발생함. 이를 위한 try문
if head > -1 and end > -1:
jpg = buffer[head:end+2]
buffer = buffer[end+2:]
img = cv2.imdecode(np.frombuffer(jpg, dtype=np.uint8), cv2.IMREAD_UNCHANGED)
cv2.imshow("stream", img)
key = cv2.waitKey(1)
if key == ord('q'):
break
#key = cv2.waitKey(1) if문으로 buffer를 확인하는데 delay를 주어 불필요한 지연 발생
#if key == ord('q'):
#break
except:
pass
cv2.destroyAllWindows()
728x90
'소프트웨어 > 파이썬' 카테고리의 다른 글
[파이썬] ESP32-CAM 스트리밍 영상 불러오기(Tkinter, OpenCV) (8) | 2021.07.02 |
---|---|
[파이썬] Tkinter & OpenCV 스트리밍 화면에 마우스 이벤트 추가 (0) | 2021.06.30 |
[파이썬] Object Tracking Tkinter로 만들기 (0) | 2021.06.27 |
[파이썬] ESP CAM의 스트리밍 영상 opencv로 불러오기 (0) | 2021.02.03 |
[파이썬] 하위경로의 파일 리스트 만들기 (0) | 2021.01.23 |
댓글