14| 0
|
[ESP8266/ESP32] 基于ESP32-S3 AI CAM的重力加速度测定实验原型设计与实践... |
一直想做一个测定重力加速度的实验,寒假期间使用NubiaZ60Pro手机拍摄了自由落体视频并进行数据分析,完成了实验结果测定。虽然得到的实验结果有些变差,大约为9.92m/s²,但应该也还在允许范围之内。拿到ESP-S3AICAM后,我比较关心是够能够取得流式视频。只有取得流式视频才有可能进行后续的数据分析进而得到相应的实验结果。 经过对camwebserver提供的网页进行分析得到提供流式视频的网址:http://camwebserverip:81/stream。 根据https://wiki.dfrobot.com.cn/SKU_DFR1154_ESP32_S3_AI_CAM提供的视频图传教程,烧录指定的程序CameraWebServer,启动之后根据串口监视器中提供的IP地址进行访问。 设置视频宽度、高度并开启stream,保险起见,关闭该网页页面,然后运行如下获取流式视频程序代码,若需要中断视频则可以按Q键实现退出。 import cv2 #url = 'http://your_esp32_cam_ip_address:your_esp32_cam_port/stream' url = 'http://192.168.6.101:81/stream' # 自己的esp32视频流地址 cap = cv2.VideoCapture(url) if not cap.isOpened(): print("Failed to open video stream!") exit() # 设置视频编码器和输出文件 fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi', fourcc, 60.0, (1920, 1080)) #60帧,视频宽1920,高1080 while True: ret, frame = cap.read() if not ret: print("从视频流中获取视频帧失败!") break resized_frame = cv2.resize(frame, (1920, 1080)) # 调整帧的尺寸 out.write(resized_frame) # 写入调整后的帧到输出文件 cv2.imshow('frame', resized_frame) # 显示调整后的帧 if cv2.waitKey(1) & 0xFF == ord('q'): # 按下 'q' 键退出循环 break cap.release() out.release() cv2.destroyAllWindows() 后续数据处理分析得到重力加速度的过程可以参考https://github.com/linkallatcn/cv_amga,或扫描二维码 ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed