“RPi Camera 500M72C”的版本间的差异
来自丢石头百科
(未显示同一用户的13个中间版本) | |||
第1行: | 第1行: | ||
+ | {{Product | ||
+ | |images=[[File:RPi_Camera_500M72C_1.png|360px|RPi Camera 500M72C]] | ||
+ | |categories= | ||
+ | {{Category|树莓派}} | ||
+ | {{Category|摄像头}} | ||
+ | {{Category|视频}} | ||
+ | |brand=丢石头 | ||
+ | |features= | ||
+ | * 500万像素 | ||
+ | * '''模组''': OV5647 | ||
+ | * '''视场角''': 72.4 | ||
+ | |interfaces= | ||
+ | {{Category|CSI接口}} | ||
+ | |related= | ||
+ | {{RPi-Camera-Related-Product}} | ||
+ | }} | ||
+ | |||
== 产品特性 == | == 产品特性 == | ||
− | * 像素:500万 | + | * 像素: 500万 |
− | * 调焦:手动 | + | * 调焦: 手动 |
− | * 视角: | + | * 视角: 72.4° |
− | * 接口:CSI | + | * 接口: CSI |
+ | * 感光芯片: OV5647 | ||
== 使用说明 == | == 使用说明 == | ||
第10行: | 第28行: | ||
* 找到树莓派主板上丝印标记为"CAMERA"的接口 | * 找到树莓派主板上丝印标记为"CAMERA"的接口 | ||
− | [[File:pi4-camera-port.png| | + | [[File:pi4-camera-port.png|400px]] |
* 轻轻上拉黑色的扣子 | * 轻轻上拉黑色的扣子 | ||
第16行: | 第34行: | ||
* 将扣子推回原位 | * 将扣子推回原位 | ||
− | [[File:connect-camera.gif| | + | [[File:connect-camera.gif|400px]] |
− | [[File:pi-camera-attached.jpg| | + | [[File:pi-camera-attached.jpg|400px]] |
=== 配置树莓派以支持摄像头功能 === | === 配置树莓派以支持摄像头功能 === | ||
− | + | * 打开树莓派电源 | |
− | + | * 进入终端 | |
− | + | * 输入以下命令,进入配置页: | |
<pre> | <pre> | ||
sudo raspi-config | sudo raspi-config | ||
</pre> | </pre> | ||
− | + | * 上下移动光标,选中"Interfacing Options",并回车 | |
[[File:树莓派raspi-config.png|800px]] | [[File:树莓派raspi-config.png|800px]] | ||
− | + | * 上下移动光标,选中"Camera",回车 | |
[[File:树莓派-使能Camera.png|800px]] | [[File:树莓派-使能Camera.png|800px]] | ||
− | + | * 在弹出的"Would you like the camera inteface to enable?",左右移动光标,选中"yes",并回车 | |
− | + | * 在弹出的"Would you like to reboot now?",左右移动光标,选中"yes",并回车,重启树莓派 | |
=== 终端命令控制摄像头 === | === 终端命令控制摄像头 === | ||
第56行: | 第74行: | ||
此命令将执行录像,并在当前的文件夹下生成"video.mp4"文件,时常为5000毫秒(5秒),可使用文件管理器查看 | 此命令将执行录像,并在当前的文件夹下生成"video.mp4"文件,时常为5000毫秒(5秒),可使用文件管理器查看 | ||
− | ==== | + | === python代码控制摄像头 === |
+ | * 可借助picamera库,使python支持摄像头的控制 | ||
+ | ==== 预览 ==== | ||
* 打开python IDE,如Thonny Python IDE,或打开记事本 | * 打开python IDE,如Thonny Python IDE,或打开记事本 | ||
[[File:thonny-app-menu.png|400px]] | [[File:thonny-app-menu.png|400px]] | ||
* 新建名字为camera.py的python文件,并保存到桌面 | * 新建名字为camera.py的python文件,并保存到桌面 | ||
* 输入以下代码 | * 输入以下代码 | ||
− | < | + | <pre> |
from picamera import PiCamera | from picamera import PiCamera | ||
from time import sleep | from time import sleep | ||
第70行: | 第90行: | ||
sleep(5) | sleep(5) | ||
camera.stop_preview() | camera.stop_preview() | ||
− | </ | + | </pre> |
− | * | + | * 进入终端,执行 |
+ | <pre> | ||
+ | python3 Desktop/camera.py | ||
+ | </pre> | ||
桌面将弹出预览框,实时取景并预览 | 桌面将弹出预览框,实时取景并预览 | ||
<pre> | <pre> | ||
需要注意的是,预览框仅在直接连接屏幕时有效,而是使用VNC等软件远程连接树莓派桌面,则不会弹出该预览框 | 需要注意的是,预览框仅在直接连接屏幕时有效,而是使用VNC等软件远程连接树莓派桌面,则不会弹出该预览框 | ||
+ | </pre> | ||
+ | 如果预览画面是上下颠倒的,则可以通过以下代码旋转180度 | ||
+ | <pre> | ||
+ | camera = PiCamera() | ||
+ | camera.rotation = 180 | ||
+ | </pre> | ||
+ | * 预览画面可旋转90度、180度、270度 | ||
+ | * 如果要重置画面,可将画面旋转0度 | ||
+ | ===== 设置预览框的透明度 ===== | ||
+ | <pre> | ||
+ | camera.start_preview(alpha=100) | ||
+ | </pre> | ||
+ | alpha的值范围是0-255 | ||
+ | ==== 拍照 ==== | ||
+ | * 在预览代码的中间插入camera.capture()命令 | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/image.jpg') | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | 请注意:必须要执行代码sleep(5),以便给摄像头的传感器留下一定时间调整亮度和白平衡 | ||
+ | ==== 录像 ==== | ||
+ | 移除 camera.captue(),并加入camera.start_recording()和camera.stop_recording() | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.start_recording('/home/pi/Desktop/video.mp4') | ||
+ | sleep(5) | ||
+ | camera.stop_recording() | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | 以上代码执行后,将在桌面生成video.mp4的视频,长度为5秒 | ||
+ | |||
+ | ==== 更多参数 ==== | ||
+ | * picamera可以给图片添加很多参数 | ||
+ | ===== 设置分辨率 ===== | ||
+ | * 默认情况下,图片的分辨率等于显示器的分辨率,但最大的图像尺寸不超过2592*1944像素,视频尺寸不超过1920*1080像素;图像和视频的最小尺寸则为64*64像素 | ||
+ | * 可使用以下代码设置图像的分辨率 | ||
+ | <pre> | ||
+ | camera.resolution = (2592, 1944) | ||
+ | camera.framerate = 15 | ||
+ | camera.start_preview() | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/max.jpg') | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | * 请注意,相机的帧数需设置为≤15帧,以支持最大分辨率 | ||
+ | ===== 给图片加文字 ===== | ||
+ | ====== 添加文字 ====== | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.annotate_text = "Hello world!" | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/text.jpg') | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | ====== 文字大小 ====== | ||
+ | <pre> | ||
+ | camera.annotate_text_size = 50 | ||
+ | </pre> | ||
+ | annotate_text_size的取值范围为6-160,默认值32 | ||
+ | |||
+ | ====== 文字颜色 ====== | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.annotate_background = Color('blue') | ||
+ | camera.annotate_foreground = Color('yellow') | ||
+ | camera.annotate_text = " Hello world " | ||
+ | sleep(5) | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | ===== 修改图片的参数 ===== | ||
+ | ====== 亮度 ====== | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.brightness = 70 | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/bright.jpg') | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | brightness的取值范围为0-100,默认值50 | ||
+ | ====== 对比度 ====== | ||
+ | <pre> | ||
+ | camera.contrast = 50 | ||
+ | </pre> | ||
+ | contrast的取值范围为0-100,默认值50 | ||
+ | ====== 风格 ====== | ||
+ | * 可通过camera.image_effect,给图片添加特效 | ||
+ | 有效值: | ||
+ | <pre> | ||
+ | none(默认) | ||
+ | negative | ||
+ | solarize | ||
+ | sketch | ||
+ | denoise | ||
+ | emboss | ||
+ | oilpaint | ||
+ | hatch | ||
+ | gpen | ||
+ | pastel | ||
+ | watercolor | ||
+ | film | ||
+ | blur | ||
+ | saturation | ||
+ | colorswap | ||
+ | washedout | ||
+ | posterise | ||
+ | colorpoint | ||
+ | colorbalance | ||
+ | cartoon | ||
+ | deinterlace1 | ||
+ | deinterlace2 | ||
+ | </pre> | ||
+ | 例如 | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.image_effect = 'colorswap' | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/colorswap.jpg') | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | |||
+ | ====== 模式 ====== | ||
+ | * 可使用camera.exposure_mode,设置拍照模式(如夜晚、运动、雪地等模式) | ||
+ | 有效值: | ||
+ | <pre> | ||
+ | off | ||
+ | auto(默认) | ||
+ | night | ||
+ | nightpreview | ||
+ | backlight | ||
+ | spotlight | ||
+ | sports | ||
+ | snow | ||
+ | beach | ||
+ | verylong | ||
+ | fixedfps | ||
+ | antishake | ||
+ | fireworks | ||
+ | </pre> | ||
+ | 例如 | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.exposure_mode = 'beach' | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/beach.jpg') | ||
+ | camera.stop_preview() | ||
+ | </pre> | ||
+ | ====== 白平衡 ====== | ||
+ | * 可使用camera.awb_mode设置白平衡 | ||
+ | 有效值: | ||
+ | <pre> | ||
+ | off | ||
+ | auto(默认) | ||
+ | sunlight | ||
+ | cloudy | ||
+ | shade | ||
+ | tungsten | ||
+ | fluorescent | ||
+ | incandescent | ||
+ | flash | ||
+ | horizon | ||
+ | </pre> | ||
+ | 例如设置白平衡为“白天” | ||
+ | <pre> | ||
+ | camera.start_preview() | ||
+ | camera.awb_mode = 'sunlight' | ||
+ | sleep(5) | ||
+ | camera.capture('/home/pi/Desktop/sunlight.jpg') | ||
+ | camera.stop_preview() | ||
</pre> | </pre> |
2020年11月3日 (二) 10:10的最新版本
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
产品特性
- 像素: 500万
- 调焦: 手动
- 视角: 72.4°
- 接口: CSI
- 感光芯片: OV5647
使用说明
连接树莓派
- 找到树莓派主板上丝印标记为"CAMERA"的接口
- 轻轻上拉黑色的扣子
- 将摄像头的柔性排线插入插槽内,注意插到底,且扣子与排线没有引脚的一面贴合,排线有引脚的一面则紧贴白色的插座
- 将扣子推回原位
配置树莓派以支持摄像头功能
- 打开树莓派电源
- 进入终端
- 输入以下命令,进入配置页:
sudo raspi-config
- 上下移动光标,选中"Interfacing Options",并回车
- 上下移动光标,选中"Camera",回车
- 在弹出的"Would you like the camera inteface to enable?",左右移动光标,选中"yes",并回车
- 在弹出的"Would you like to reboot now?",左右移动光标,选中"yes",并回车,重启树莓派
终端命令控制摄像头
拍照
- 进入终端,输入以下命令
raspistill -o Desktop/image.jpg
此命令将执行拍照,并在桌面生成"image.jpg"文件,可双击查看
- 如需指定分辨率,可使用以下命令
raspistill -o Desktop/image-small.jpg -w 640 -h 480
录像
进入终端,输入以下命令
raspivid -o video.mp4 -t 5000
此命令将执行录像,并在当前的文件夹下生成"video.mp4"文件,时常为5000毫秒(5秒),可使用文件管理器查看
python代码控制摄像头
- 可借助picamera库,使python支持摄像头的控制
预览
- 打开python IDE,如Thonny Python IDE,或打开记事本
- 新建名字为camera.py的python文件,并保存到桌面
- 输入以下代码
from picamera import PiCamera from time import sleep camera = PiCamera() camera.start_preview() sleep(5) camera.stop_preview()
- 进入终端,执行
python3 Desktop/camera.py
桌面将弹出预览框,实时取景并预览
需要注意的是,预览框仅在直接连接屏幕时有效,而是使用VNC等软件远程连接树莓派桌面,则不会弹出该预览框
如果预览画面是上下颠倒的,则可以通过以下代码旋转180度
camera = PiCamera() camera.rotation = 180
- 预览画面可旋转90度、180度、270度
- 如果要重置画面,可将画面旋转0度
设置预览框的透明度
camera.start_preview(alpha=100)
alpha的值范围是0-255
拍照
- 在预览代码的中间插入camera.capture()命令
camera.start_preview() sleep(5) camera.capture('/home/pi/Desktop/image.jpg') camera.stop_preview()
请注意:必须要执行代码sleep(5),以便给摄像头的传感器留下一定时间调整亮度和白平衡
录像
移除 camera.captue(),并加入camera.start_recording()和camera.stop_recording()
camera.start_preview() camera.start_recording('/home/pi/Desktop/video.mp4') sleep(5) camera.stop_recording() camera.stop_preview()
以上代码执行后,将在桌面生成video.mp4的视频,长度为5秒
更多参数
- picamera可以给图片添加很多参数
设置分辨率
- 默认情况下,图片的分辨率等于显示器的分辨率,但最大的图像尺寸不超过2592*1944像素,视频尺寸不超过1920*1080像素;图像和视频的最小尺寸则为64*64像素
- 可使用以下代码设置图像的分辨率
camera.resolution = (2592, 1944) camera.framerate = 15 camera.start_preview() sleep(5) camera.capture('/home/pi/Desktop/max.jpg') camera.stop_preview()
- 请注意,相机的帧数需设置为≤15帧,以支持最大分辨率
给图片加文字
添加文字
camera.start_preview() camera.annotate_text = "Hello world!" sleep(5) camera.capture('/home/pi/Desktop/text.jpg') camera.stop_preview()
文字大小
camera.annotate_text_size = 50
annotate_text_size的取值范围为6-160,默认值32
文字颜色
camera.start_preview() camera.annotate_background = Color('blue') camera.annotate_foreground = Color('yellow') camera.annotate_text = " Hello world " sleep(5) camera.stop_preview()
修改图片的参数
亮度
camera.start_preview() camera.brightness = 70 sleep(5) camera.capture('/home/pi/Desktop/bright.jpg') camera.stop_preview()
brightness的取值范围为0-100,默认值50
对比度
camera.contrast = 50
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
例如
camera.start_preview() camera.image_effect = 'colorswap' sleep(5) camera.capture('/home/pi/Desktop/colorswap.jpg') camera.stop_preview()
模式
- 可使用camera.exposure_mode,设置拍照模式(如夜晚、运动、雪地等模式)
有效值:
off auto(默认) night nightpreview backlight spotlight sports snow beach verylong fixedfps antishake fireworks
例如
camera.start_preview() camera.exposure_mode = 'beach' sleep(5) camera.capture('/home/pi/Desktop/beach.jpg') camera.stop_preview()
白平衡
- 可使用camera.awb_mode设置白平衡
有效值:
off auto(默认) sunlight cloudy shade tungsten fluorescent incandescent flash horizon
例如设置白平衡为“白天”
camera.start_preview() camera.awb_mode = 'sunlight' sleep(5) camera.capture('/home/pi/Desktop/sunlight.jpg') camera.stop_preview()