ESP32-CAM 使用 MicroPython 完成視頻網絡鏈接參考https://blog.csdn.net/weixin_43982855/article/details/121851251當python端口接收到ESP32-CAM的數據后,開始計算幀率,具體代碼如下:
import cv2
import io
from PIL import Image
import numpy as np
import socket
from cv2 import getTickCount,getTickFrequency
import time
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)
s.bind(("0.0.0.0",9090))# 綁定你電腦上的所有IP地址,如果電腦有多個IP地址,數據都接收
#######初始化幀率統計
frame_count=0
start_time=time.time()
# loop_start=getTickCount()
while True:
data,IP=s.recvfrom(100000)
#######統計幀率
frame_count +=1
elapsed_time=time.time()-start_time
if elapsed_time>=1.0: ###########當測試的時間大于1S的時候
fps=frame_count/elapsed_time #########將接收的總幀數/1s左右的時間
print(f"當前幀率:{fps} fps")
frame_count=0
start_time=time.time()
bytes_stream=io.BytesIO(data)
image=Image.open(bytes_stream)
img=np.asarray(image)
cv2.imshow("esp_video",img)
if cv2.waitKey(1)==ord("q"):
break
|