2021.02.03 - [파이썬] - [파이썬] ESP CAM의 스트리밍 영상 opencv로 불러오기
[파이썬] ESP CAM의 스트리밍 영상 opencv로 불러오기
안녕하세요? 만들오 입니다. ESP CAM의 영상의 주소는 http://192.168.0.12/stream 과 같은 스트리밍 주소입니다. 일반적인 cv2.imread("http://192.168.0.12/stream") 과 같은 방법으로 열 수가 없습니다. imutil..
mandloh.tistory.com
지난 글에서 속도가 저하되는 부분이 있어 수정했습니다.
수정 내용은 주석에 기록했으니 참고해 주시기 바랍니다.
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 |
댓글