基于mjpg-streamer实现树莓派4B摄像头监控+拍照

获取mjpg-streamer

  • https://github.com/jacksonliam/mjpg-streamer 下载压缩包
  • unzip mjpg-streamer-master.zip
  • cd mjpg-streamer-master
  • make all
    • 错误
      • 安装cmake:sudo apt-get install cmake
    • 如果还出错安装其他支持
      • sudo apt-get install libv4l-dev
      • sudo apt-get install imagemagick
      • sudo apt-get install libjpeg8-dev
        • 提示libjpeg8-dev失效了
          • 把8删去就可以了:sudo apt-get install libjpeg-dev
          • 重新make(不行就make all)
  • make install

启动视频传输

  • ls /dev | grep video

    • 如果存在video*(*为数字,如video0)的设备节点,说明可以走uvc通道,直接运行start.sh脚步即可。

    • 如果不存在video* (*为数字,如video0)的设备节点,则需要修改start.sh脚步,将input_uvc.so修改为input_raspicam.so

      • vi start.h

      • 我在编译mjpg-streamer并没有生成input_raspicam.so这个插件,而且我的设备节点都是带数字的,所以不带数字的情况这里就没法演示了

    • 我插了两个摄像头(一个是树莓派的video0(用排针连接),一个是USB摄像头video1)

  • 同时启动两个摄像头(需要指定一些参数)

    • 在不同终端分别运行
      • ./mjpg_streamer -i “./input_uvc.so -d /dev/video0” -o “./output_http.so -p 8080 -w ./www”
      • ./mjpg_streamer -i “./input_uvc.so -d /dev/video1” -o “./output_http.so -p 8085 -w ./www”
        • 也可以将上诉两条语句修改进start.sh启动脚本里(需要注意的是如果没有插入摄像头或是识别不到设备节点启动的时候是肯定会出错的)
  • 使能树莓派摄像头

    • sudo raspi-config

  • http://你的IP地址:8080/stream.html(如果启用了两个摄像头注意修改端口号分别访问不同的网址)

获取视频流图片

使用命令:wget http://视频传输的IP地址:8080/?action=snapshot -O(大写O) ./image1.jpg

  • (端口号和IP地址要对上)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
首先,你需要安装mjpg-streamer到你的树莓上,可以通过以下命令进行安装: ``` sudo apt-get update sudo apt-get install subversion libjpeg-dev imagemagick libv4l-dev svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer cd mjpg-streamer/mjpg-streamer make sudo make install ``` 安装完毕后,你需要下载并安装OpenCV,可以通过以下命令进行安装: ``` sudo apt-get install libopencv-dev python-opencv ``` 现在,你已经准备好开始使用mjpg-streamer和OpenCV来实现人形检测了。以下是一些基本步骤: 1. 启动mjpg-streamer ``` cd /usr/local/share/mjpg-streamer/ ./mjpg_streamer -i "input_uvc.so" -o "output_http.so -w ./www" ``` 这将启动mjpg-streamer并将其绑定到默认的视频设备(通常是/dev/video0)。现在你可以在浏览器中输入你的树莓IP地址和端口号(默认为8080)来查看摄像头的实时视频流。 2. 导入OpenCV 在Python中,你需要导入OpenCV库来处理视频流和图像: ``` import cv2 ``` 3. 检测人形 以下是一个简单的示例代码,用于从mjpg-streamer视频流中检测人形: ``` import cv2 cap = cv2.VideoCapture('http://localhost:8080/?action=stream') while True: ret, frame = cap.read() if not ret: break gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 使用OpenCV的人形分类器进行检测 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5) # 在图像上绘制检测到的人形 for (x, y, w, h) in faces: cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.imshow('frame', frame) if cv2.waitKey(1) == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 在这个示例中,我们从mjpg-streamer视频流中读取每一帧,并将其转换为灰度图像。然后,我们使用OpenCV的人形分类器来检测人形,然后在图像上绘制矩形来标识检测到的人形。最后,我们在窗口中显示标记的图像。 请注意,这只是一个简单的示例,你可以根据自己的需求进行自定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trt_ToHoldOn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值