匿名
未登录
登录
丢石头百科
搜索
查看“模板:Raspberry Pi Camera User Manual”的源代码
来自丢石头百科
名字空间
模板
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
模板:Raspberry Pi Camera User Manual
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 使用说明 == === 硬件连接 === 把摄像头的排线插入到网口和 HDMI 口之间的排线插槽,银色亮面朝向 HDMI 口。需要先把树莓 派板载的排线插槽的扣子拨开,才能插入排线。排线需要紧密插入排线插槽,同时应注意避免排 线折弯。排线插入之后,需要把插槽的扣子重新扣上。 === 启用摄像头 === 如果使用的是最新的bullseye镜像,摄像头接口已经默认开启,可以跳过该步骤。 1. 进入 Raspbian 系统终端,执行以下语句获取系统更新: <pre> apt-get update apt-get upgrade </pre> 2. 使用 raspi-config 配置摄像头。执行: <pre> sudo raspi-config </pre> 依次选择: Interfacing Options --> Camera --> Would you like the camera interface to be enabled? 选择 <Yes> 3. 重启系统:提示 Would you like to reboot now? 选择 Yes 或者执行这个命令重启: <pre> sudo reboot </pre> 配置并且连接完摄像头,只要给树莓派上电即可使用拍照和摄像功能。 === 测试摄像头(Bullseyes系统) === 打开树莓派终端,并开启摄像头预览: <pre> sudo libcamera-hello -t 0 </pre> 如果要关掉预览窗口,可以直接组合按键Alt-F4,或者点击x关掉。 也可以回到终端界面,用ctrl-c终止程序。 === 测试摄像头(Buster系统)=== 打开树莓派终端,并开启摄像头预览: <pre> sudo raspistill -t 0 </pre> 如果要关掉预览窗口,可以用ctrl-c终止程序。 === 拍照 === 终端执行以下语句即可拍照: <pre> raspistill -o image.jpg </pre> 此处 image.jpg 是照片文件名。 === 摄像 === 终端执行以下语句即可摄像: <pre> raspivid -o video.h264 -t 10000 </pre> 其中 -t 10000 表示录制 10 秒,用户各根据自己的需要进行调整。 === 参考资料 === * [http://www.raspberrypi.org/camera 树莓派摄像头教程] == Python 代码控制摄像头 == * 可借助picamera库,使python支持摄像头的控制 * 树莓派镜像在Bullseye版本之后,底层的树莓派驱动由Raspicam切换成libcamera。libcamera是一个开源的软件栈(后面会称呼做驱动,方便理解),方便于第三方移植和开发自己的摄像头驱动。当前的libcamera不支持python, 因此树莓派官方还是提供了Raspicam的安装下载的方法。对于切换成libcamera困难,但是又需要用最新系统的用户,请直接移步到Raspicam的使用说明。 === 预览 === * 打开python IDE,如Thonny Python IDE,或打开记事本 [[File:thonny-app-menu.png|400px]] * 新建名字为camera.py的python文件,并保存到桌面 * 输入以下代码 <source lang="python"> from picamera import PiCamera from time import sleep camera = PiCamera() camera.start_preview() sleep(5) camera.stop_preview() </source> * 进入终端,执行 <source lang="python"> python3 Desktop/camera.py </source> 桌面将弹出预览框,实时取景并预览 <source lang="python"> 需要注意的是,预览框仅在直接连接屏幕时有效,而是使用VNC等软件远程连接树莓派桌面,则不会弹出该预览框 </source> 如果预览画面是上下颠倒的,则可以通过以下代码旋转180度 <source lang="python"> camera = PiCamera() camera.rotation = 180 </source> * 预览画面可旋转90度、180度、270度 * 如果要重置画面,可将画面旋转0度 ==== 设置预览框的透明度 ==== <source lang="python"> camera.start_preview(alpha=100) </source> alpha的值范围是0-255 === 拍照 === * 在预览代码的中间插入camera.capture()命令 <source lang="python"> camera.start_preview() sleep(5) camera.capture('/home/pi/Desktop/image.jpg') camera.stop_preview() </source> 请注意:必须要执行代码sleep(5),以便给摄像头的传感器留下一定时间调整亮度和白平衡 === 录像 === 移除 camera.captue(),并加入camera.start_recording()和camera.stop_recording() <source lang="python"> camera.start_preview() camera.start_recording('/home/pi/Desktop/video.h264') sleep(5) camera.stop_recording() camera.stop_preview() </source> 以上代码执行后,将在桌面生成video.h264的视频,长度为5秒 === 更多参数 === * picamera可以给图片添加很多参数 ==== 设置分辨率 ==== * 默认情况下,图片的分辨率等于显示器的分辨率,但最大的图像尺寸不超过2592*1944像素,视频尺寸不超过1920*1080像素;图像和视频的最小尺寸则为64*64像素 * 可使用以下代码设置图像的分辨率 <source lang="python"> camera.resolution = (2592, 1944) camera.framerate = 15 camera.start_preview() sleep(5) camera.capture('/home/pi/Desktop/max.jpg') camera.stop_preview() </source> * 请注意,相机的帧数需设置为≤15帧,以支持最大分辨率 ==== 给图片加文字 ==== '''添加文字''' <source lang="python"> camera.start_preview() camera.annotate_text = "Hello world!" sleep(5) camera.capture('/home/pi/Desktop/text.jpg') camera.stop_preview() </source> '''文字大小''' <source lang="python"> camera.annotate_text_size = 50 </source> annotate_text_size的取值范围为6-160,默认值32 '''文字颜色''' <source lang="python"> camera.start_preview() camera.annotate_background = Color('blue') camera.annotate_foreground = Color('yellow') camera.annotate_text = " Hello world " sleep(5) camera.stop_preview() </source> '''修改图片的参数''' * 亮度 <source lang="python"> camera.start_preview() camera.brightness = 70 sleep(5) camera.capture('/home/pi/Desktop/bright.jpg') camera.stop_preview() </source> brightness的取值范围为0-100,默认值50 * 对比度 <source lang="python"> camera.contrast = 50 </source> contrast的取值范围为0-100,默认值50 * 风格 可通过camera.image_effect,给图片添加特效 有效值: * none(默认) * negative * solarize * sketch * denoise * emboss * oilpaint * hatch * gpen * pastel * watercolor * film * blur * saturation * colorswap * washedout * posterise * colorpoint * colorbalance * cartoon * deinterlace1 * deinterlace2 例如 <source lang="python"> camera.start_preview() camera.image_effect = 'colorswap' sleep(5) camera.capture('/home/pi/Desktop/colorswap.jpg') camera.stop_preview() </source> * 模式 可使用camera.exposure_mode,设置拍照模式(如夜晚、运动、雪地等模式) 有效值: * off * auto(默认) * night * nightpreview * backlight * spotlight * sports * snow * beach * verylong * fixedfps * antishake * fireworks 例如 <source lang="python"> camera.start_preview() camera.exposure_mode = 'beach' sleep(5) camera.capture('/home/pi/Desktop/beach.jpg') camera.stop_preview() </source> * 白平衡 可使用camera.awb_mode设置白平衡 有效值: * off * auto(默认) * sunlight * cloudy * shade * tungsten * fluorescent * incandescent * flash * horizon 例如设置白平衡为“白天” <source lang="python"> camera.start_preview() camera.awb_mode = 'sunlight' sleep(5) camera.capture('/home/pi/Desktop/sunlight.jpg') camera.stop_preview() </source>
返回至
模板:Raspberry Pi Camera User Manual
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志