【树莓派】摄像头的基本使用

这篇具有很好参考价值的文章主要介绍了【树莓派】摄像头的基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本次实验目标是:
1、完成树莓派使用CSI摄像头拍取照片,拍摄视频
2、使用socket进行网络拍照控制和图片传输功能。

一、软硬件准备

1、硬件

树莓派4B
树莓派摄像头

2、软件

VNC-Viewer
eclipse/VS Code(Java)

将树莓派断电,并将CSI摄像头接入靠近网孔的排孔中,CSI摄像头蓝色面朝网孔方向。
【树莓派】摄像头的基本使用

二、使用步骤

1.系统使能摄像头

终端执行指令

sudo raspi-config

【树莓派】摄像头的基本使用

【树莓派】摄像头的基本使用
【树莓派】摄像头的基本使用
【树莓派】摄像头的基本使用
【树莓派】摄像头的基本使用
使能摄像头保存退出后会重启,如果没有重启可自行重启

sudo rebuild

2.拍摄照片

拍摄照片

raspistill -o new.jpg

查看:

其中xdg-open 为使用系统默认应用打开

xdg-open new.jpg

【树莓派】摄像头的基本使用

3.拍摄视频

录制视频:

raspivid -o vv.h264 -t 10000s

【树莓派】摄像头的基本使用

4.实现远程拍照控制及照片获取

简单网络获取实时照片实现,建立socket通信,树莓派用python写socket服务器,线程监听端口,Windows用java写socket客户端。客户端连接服务器后发送相关指令调用树莓派拍照程序进行拍照,然后把照片数据用byte格式传递给客户端,客户端进行有效接收,并显示。

树莓派端python代码实现

import os
import socketsever
class Sok(socketsever .BaseRequestHandler):
    def handle(self):
        while Ture:
            try:
                self.datax=self.request.recv(1024).decode("gbk")
                if(self.datax==""):break
                print(self.client_address,"-------",self.datax)
                if self.datax=="1":
                    self.request.send("#准备开始拍照...".encode("gbk"))
                    os.system("raspistill -o new.jpg")
                    os.system("xdg-open new,jpg")
                    self.request.send("#拍照完成,正在传输...".encode("gbk"))
                    f=open("new.jpg","rb")
                    f_size=os.stat("new,jpg").st_size #获取文件大小
                    self.request.send(("#size:"+str(f_size)).encode("gbk"))
                    self.request.recv(100) #空操作,等待数据确认
                    for lin in f:
                        self.request.send(lin)

                if self.datax=="0":
                    self.request.send("#通信成功***".encode("gbk"))
            except Exception as e:
                print("!!!!!!exception!!!!!!!", e)
                break
sock=socketsever.ThreadingTCPSever(("0.0.0.0",2351),Sok)
sock.sever_forever()

window端Java代码实现

import os
import socketsever
class Sok(socketsever .BaseRequestHandler):
    def handle(self):
        while Ture:
            try:
                self.datax=self.request.recv(1024).decode("gbk")
                if(self.datax==""):break
                print(self.client_address,"-------",self.datax)
                if self.datax=="1":
                    self.request.send("#准备开始拍照...".encode("gbk"))
                    os.system("raspistill -o new.jpg")
                    os.system("xdg-open new,jpg")
                    self.request.send("#拍照完成,正在传输...".encode("gbk"))
                    f=open("new.jpg","rb")
                    f_size=os.stat("new,jpg").st_size #获取文件大小
                    self.request.send(("#size:"+str(f_size)).encode("gbk"))
                    self.request.recv(100) #空操作,等待数据确认
                    for lin in f:
                        self.request.send(lin)

                if self.datax=="0":
                    self.request.send("#通信成功***".encode("gbk"))
            except Exception as e:
                print("!!!!!!exception!!!!!!!", e)
                break
sock=socketsever.ThreadingTCPSever(("0.0.0.0",2351),Sok)
sock.sever_forever()

失败记录

Ps:远程拍照没有实现,python代码提示错误,库函数缺失,加上电脑卸载了java环境,就没有做后续的远程控制了

【树莓派】摄像头的基本使用
参考文章链接

三.小结

通过本次使用,学习了树莓派调用摄像头的方法,可惜的是后面远程控制拍摄没有实现,了解了socket服务通信的方法。文章来源地址https://www.toymoban.com/news/detail-402011.html

到了这里,关于【树莓派】摄像头的基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树莓派3B摄像头的详细使用教程(拍照+录像+监控)

    树莓派4B摄像头的详细使用教程(拍照+录像+监控) 本篇博文将介绍树莓派摄像头是如何在树莓派开发板上从安装到使用的,博主过程中参考了许多帖子,现将整理的比较全面的过程分享出来,供大家参考使用。 排线连接 硬件连接时我们首先需要使用树莓派摄像头FFC排线,连

    2024年02月03日
    浏览(34)
  • 树莓派利用python-opencv使用CSI摄像头调用监控视频

    目录 一、安装python-opencv。 二、使用工具Xshell7和MobaXterm 三、连接并打开CSI摄像头 3.1连线如图所示: 3.2打开摄像头 四、编写摄像头代码调用摄像头         一定要选择配置好的安装python-opencv,不要去配置安装,然后还cmake编译,没有必要基本上安装过程都会报2-3个错误,还

    2023年04月17日
    浏览(40)
  • 树莓派CSI摄像头使用python调用opencv库函数进行运动检测识别

    目录 一、完成摄像头的调用 二、利用python调用opencv库函数对图像进行处理 2.1 图像处理大体流程 2.2 opencv调用函数的参数以及含义 2.2.1 ret, img = cap.read() 读取帧图像 2.2.2 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 灰度图像 2.2.3 gray_diff_img = cv2.absdiff(gray_img, previous_img) 帧差法 2.2.4 cv2.thre

    2024年02月15日
    浏览(32)
  • 树莓派4B摄像头安装+Ubuntu22.04系统摄像头识别

    树莓派4B安装上摄像头后,是不能立即使用的,需要进行一些配置才能使用,本文详细说明了配置过程和测试结果。 执行以下命令,检测是否可以识别摄像头: 结果如下: 返回结果:supported=0 detected=0,说明此时摄像头硬件还没有识别出来,而且设备是不支持摄像头配件的,

    2024年02月22日
    浏览(52)
  • 树莓派4B使用opencv获取Camera Module 3摄像头图像(解决无法直接获取图像的问题)

    莓派4B在使用官方的Camera Module 3摄像头时,无法通过opencv直接获取到图像,具体问题表现在 opencv可以打开摄像头但是无法获取到图像信息,导致imshow等方法因无法获取图像数据进而报错 ,只能使用picamera2库进行图像的获取和和处理,对不熟悉picamera2库的同学不够友好; [INF

    2024年04月27日
    浏览(36)
  • 树莓派——opencv打开树莓派摄像头调试记录

    目录 一、安装包:(注意换要源,不要用系统默认源) 问题1:磁盘空间不足——把根目录扩展到整个SD卡 解决:把根目录扩展到整个SD卡 二、下载 1、先创建opencv目录: 2、下载 问题:fatal: unable to access \\\'https://github.com/opencv/opencv.git/\\\': gnutls_handshake() failed: The TLS connection was

    2024年02月11日
    浏览(33)
  • 树莓派调用usb摄像头(三)

    因为我的摄像头是usb 的所以使用一下命令查看摄像头 输入以下命令,开启摄像头 sudo apt-get install cmake libjpeg8-dev 提示:Package \\\'libjpeg8-dev\\\' has no installation candidate sudo apt-get install libjpeg62-turbo=1:1.5.2-2+deb10u1 (2) 打开motion daemon守护进程,使得motion可以一直在后台运行。  sudo nano /e

    2024年01月17日
    浏览(34)
  • 树莓派连接双目摄像头教程(详)

    前言:此教程为菜鸟准备好了代码,仅仅是初试水。 软件准备:Arduino IDE软件 硬件准备:树莓派 Arduin单片机 双目摄像头 树莓派桌面:1准备环境 2 Arduino IDE 3打开摄像头  1.软件准备 下载Arduino IDE软件 Windows用户可在浏览器输入网址:https://www.arduino.cc/en/Main/Software 下载安装都是

    2023年04月09日
    浏览(64)
  • 树莓派官方摄像头detected=0问题

    树莓派的官方摄像头在连接到树莓派时常遇到各种情况,今天在连接opencv时出现了如下的问题:  如图片所示,我先检测树莓派的状态,发现输出为1正常,但输入为0.在正常的情况下应该是: supported=1 detected=1. 然后我尝试 ls /dev/video*指令,发现没有video0设备,这是不正常的,

    2024年02月07日
    浏览(28)
  • 树莓派夜视摄像头拍摄红外LED灯

            NoIR相机是一种特殊类型的红外摄像头,其名称来源于\\\"No Infrared\\\"的缩写。与普通的彩色摄像头不同,NoIR相机具备红外摄影和低光条件下摄影的能力。         一般摄像头能够感知可见光,并用于普通摄影和视频拍摄。而NoIR相机则在设计上去除了红外滤光片,使

    2024年03月25日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包