神经网络

IOT设备AI搭建5:树莓派安装摄像头和使用

2020-04-18  本文已影响0人  古风子

树莓派使用的是3B+

1. 将摄像头硬件正确的安装到板子上

2. 检查摄像头是否正确安装

$ vcgencmd get_camera
supported=1 detected=1

detected=1表示已经检测到摄像头

3. 添加驱动程序文件

sudo vim /etc/modules

在文件的最后一行添加bcm2835-v412;添加后的文件内容为:

i2c-dev
bcm2835-v412

4. 运行配置项设置程序

sudo raspi-config

选择5 interfacting Options
进入后,选择P1 Camera

设置完后,重启设备,

6. 抓取图片

运行以下命令抓取图片

raspistill -o image.jpg -tl 5000
//raspistill -o image%d.jpg -rot 0 -w 300 -h 300 -t 5000 -tl 5000 -v

抓取的图片效果为:


image

常用参数意义:
-v:调试信息查看
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取

7. 生成h246文件

使用raspivid指令来生成.h246的文件

raspivid -o imagechain.h264

这样就会在当前文件夹下面生成imagechain.h264的文件,默认时间是5秒;可以设置录制的视频宽高和时间(raspivid --help)

"-t" 选项来设置你想要的长度就行了(单位是毫秒)。
"-w" 和 "-h" 选项设置分辨率

8.安装和使用opencv

安装opencv

sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

测试是否安装成功

ython
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'2.4.9.1'
>>> 

opencv测试相机预览
opencv.py

# import the necessary packages
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2

# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640, 480))

# allow the camera to warmup
time.sleep(0.1)

# capture frames from the camera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    # grab the raw NumPy array representing the image, then initialize the timestamp
    # and occupied/unoccupied text
    image = frame.array

    # show the frame
    cv2.imshow("Frame", image)
    key = cv2.waitKey(1) & 0xFF

    # clear the stream in preparation for the next frame
    rawCapture.truncate(0)

    # if the `q` key was pressed, break from the loop
    if key == ord("q"):
        break 


上一篇下一篇

猜你喜欢

热点阅读