RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头

视频讲解:RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头_哔哩哔哩_bilibili

RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头

安装opencv相关库

复制代码
sudo apt install libopencv-dev python3 python3-opencv

测试使用的CSI摄像头为ov5647,官方示例如下,其中json包括csi型号不同需要修改下

复制代码
import cv2

gst_str = 'spacemitsrc location=/home/bianbu/camtest_ov16a10.json close-dmabuf=1 ! video/x-raw,format=NV12,width=1280,height=720 ! appsink'

cap = cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)  # 打开默认的摄像头

while True:
  ret, frame = cap.read()  # 读取视频帧
  frame = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_NV12)
  cv2.imshow('Video', frame)  # 显示视频帧

  if cv2.waitKey(1) & 0xFF == ord('q'):  # 按下 'q' 键退出循环
      break

cap.release()  # 释放摄像头
cv2.destroyAllWindows()  # 关闭所有窗口

需要将gst_str中json文件的位置修改为如下:

复制代码
gst_str = 'spacemitsrc location=/usr/share/camera_json/csi3_camera_auto.json close-dmabuf=1 ! video/x-raw,format=NV12,width=1920,height=1080 ! appsink'

完整修改如下:

复制代码
import cv2

gst_str = 'spacemitsrc location=/usr/share/camera_json/csi3_camera_auto.json close-dmabuf=1 ! video/x-raw,format=NV12,width=1920,height=1080 ! appsink'

cap = cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)  # 打开默认的摄像头

while True:
  ret, frame = cap.read()  # 读取视频帧
  frame = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_NV12)
  cv2.imshow('Video', frame)  # 显示视频帧

  if cv2.waitKey(1) & 0xFF == ord('q'):  # 按下 'q' 键退出循环
      break

cap.release()  # 释放摄像头
cv2.destroyAllWindows()  # 关闭所有窗口

非桌面段的话,会起一个Remote X窗口用来显示,虽然有点卡

相关推荐
混沌福王1 小时前
Electron三端统一架构:运行时Adapter、IPC能力边界与分层设计
人工智能·agent·ai编程
说了很好1 小时前
马尔可夫扩散链+损失函数推导,手把手实现原生Diffusion
人工智能
聂二AI落地内参1 小时前
合同抽取别停在 JSON:标准规则和交易日历才是硬仗
人工智能
冬哥聊AI1 小时前
滴滴Agent岗二面:RAG 系统的 LLM 幻觉怎么治?从两类根源讲到四道防线
人工智能
lyshlc2 小时前
# AI Agent的推迟判定协议:不确定性下的最优策略
人工智能
用户329901675052 小时前
用zod在运行时兜住AI返回的JSON
人工智能
George3752 小时前
第一章:本体论是什么(以及它不是什么)
人工智能
贵慜_Derek2 小时前
《从零实现 Agent 系统》连载 32|闭集 IE 与小模型:分类、意图与字段抽取
人工智能·架构·agent
IT_陈寒2 小时前
Java 并行流把我坑惨了,这6小时加班值了
前端·人工智能·后端
火山引擎开发者社区3 小时前
告别长期密码:火山引擎云数据库 MySQL IAM 鉴权全解析
人工智能