匿名
未登录
登录
丢石头百科
搜索
查看“OV5647 Camera”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
OV5647 Camera
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Product |images= [[File:OV5647 Camera (77).jpg|400px]] OV5647 Camera (77) ----- [[File:OV5647 Camera (120).jpg|400px]] OV5647 Camera (120) ----- [[File:OV5647 Camera (160).jpg|400px]] OV5647 Camera (160) ----- [[File:OV5647 Camera (200).jpg|400px]] OV5647 Camera (200) |categories= {{Category|树莓派}} {{Category|摄像头}} {{Category|视频}} |brand=Diustou |features= * 500万像素 * 模组:OV5647 * 视场角:77/120/160/220 |interfaces={{Category|CSI接口}} }} == 产品参数 == *像素:500万像素 *感光芯片: OV5647 *分辨率:3264 x 2464 *CMOS尺寸:1/4英寸 *视场角(FOV):77°/120°/160°/220° *焦距: **OV5647 Camera (77):2.85mm±5% **OV5647 Camera (120):1.79mm±5% **OV5647 Camera (160):1.05mm±5% **OV5647 Camera (200):2.16mm±5%(可手动调焦) *红外功能:无红外 == 使用说明 == === 硬件连接 === 把摄像头的排线插入到网口和 HDMI 口之间的排线插槽,银色亮面朝向 HDMI 口。需要先把树莓派板载的排线插槽的扣子拨开,才能插入排线。排线需要紧密插入排线插槽,同时应注意避免排线折弯。排线插入之后,需要把插槽的扣子重新扣上。 === 测试摄像头 === ==== Bullseye系统 ==== 注:最新的bullseye镜像,摄像头接口已经默认开启,故无需配置raapi-config。 *进入命令行终端,执行以下语句获取系统更新: <pre> sudo apt-get update sudo apt-get upgrade </pre> *输入命令,进行摄像头预览 <pre> sudo libcamera-hello -t 0 </pre> :如果要关掉预览窗口,可以点击x关掉。 也可以回到终端界面,用ctrl-c终止程序。 *若想抓取图片,可执行命令 libcamera-jpeg -o test.jpg ==== Buster系统 ==== *进入命令行终端,执行以下语句获取系统更新: <pre> apt-get update apt-get upgrade </pre> *使用 raspi-config 配置摄像头。执行: <pre> sudo raspi-config </pre> :依次选择:Interfacing Options --> Camera --> Would you like the camera interface to be enabled? 选择 <Yes> :重启系统:提示 Would you like to reboot now? 选择 Yes :或者执行这个命令重启: <pre> sudo reboot </pre> *配置并且连接完摄像头,只要给树莓派上电即可使用拍照和摄像功能。 *打开树莓派终端,并开启摄像头预览: <pre> sudo raspistill -t 0 </pre> :如果要关掉预览窗口,可以用ctrl-c终止程序。 === 调用摄像头 === ==== bullseye系统 ==== ===== libcamera-hello ===== *该命令用来预览摄像头并将摄像头画面显示在屏幕上。 *示例: :'''终端执行以下语句即可实时预览摄像头''' <pre> libcamera-hello -t 0 </pre> :其中 -t 0 表示一直预览至终止程序,用户可根据自己的需要进行调整。 ===== libcamera-jpeg ===== *该命令一个简单的静态图片拍摄程序,libcamera-jpeg相对于libcamera-still来讲更加简洁,并且有很多相同的功能来完成图片拍摄。 *示例: :'''终端执行以下语句会显示一个5秒左右的预览串口,然后拍摄一张全像素的JPEG图像''': <pre> libcamera-jpeg -o test.jpg </pre> :其中test.jpg表示文件名 *用户可以通过-t 参数来设置预览时间,同时可以通过--width 和 --height来设置拍摄图像的分辨率。例如 <pre> libcamera-jpeg -o test.jpg -t 2000 --width 640 --height 480 </pre> *所有的libcamera指令都允许用户自己设置快门时间和增益,比如: <pre> libcamera-jpeg -o test.jpg -t 2000 --shutter 20000 --gain 1.5 </pre> :其中 --shutter 20000 表示曝光 20ms, --gain 1.5 表示摄像头增益被设置为1.5倍。 ===== libcamera-still ===== *libcamera-still和libcamera-jpeg非常相似,不同的是libcamera继承了更多raspistill的功能。 *终端执行以下语句即可拍照: <pre> libcamera-still -o test.jpg </pre> :其中test.jpg表示文件名 *libcamea-still支持不同格式的图像文件,可以支持png和bmp编码,也支持直接不带编码或者任何图像格式地将RGB或者YUV像素的二进制转储保存成文件。如果是直接保存RGB或者YUV数据,程序在读取此类文件的时候必须了解文件的像素排列方式。 <pre> libcamera-still -e png -o test.png libcamera-still -e bmp -o test.bmp libcamera-still -e rgb -o test.data libcamera-still -e yuv420 -o test.data </pre> :图像保存的格式是通过-e参数控制的, 如果没有调用-e参数设置的话,默认按照输出的文件名的格式保存。 ===== libcamera-vid ===== *libcamera-vid是一个视频录制程序, 默认使用的是树莓派的硬件H.264编码器。这个程序运行之后会在屏幕上显示一个预览窗口,同时将比特流编码输出到指定文件。 *终端执行以下语句即可录制视频: <pre> libcamera-vid -t 10000 -o test.h264 </pre> :其中-t 10000 表示录制10秒的视频,test.h264表示文件名 :如果要查看视频可以用vlc来进行播放 <pre> vlc test.h264 </pre> ===== libcamera-raw ===== *libcamera-raw类似于视频录制程序,不同的地方时,libcamera-raw录制的是直接传感器输出的Bayer格式的数据,也就是原始图像数据。libcamera-raw不会显示预览窗口。 *终端执行以下语句即可录制一个2秒的原始数据片段: <pre> libcamera-raw -t 2000 -o test.raw </pre> :程序会在没有格式信息的情况下直接转储原始帧,程序会将像素格式和图像尺寸直接打印在终端,用户可以根据输出的数据查看像素数据.默认情况下,程序会将原始帧保存成一个文件,文件通常比较大,用户可以通过--segement参数将文件进行分割。 <pre> libcamera-raw -t 2000 --segment 1 -o test%05d.raw </pre> ==== Buster系统 ==== ===== 拍照 ===== 终端执行以下语句即可拍照: <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> == NVIDIA入门教程 == {{NVIDIA-Jetson-Nano-2GB-Introductory Course}}
该页面使用的模板:
模板:Category
(
查看源代码
)
模板:Product
(
查看源代码
)
模板:Raspberry Pi Camera User Manual
(
查看源代码
)
模板:Raspberry Pi Study
(
查看源代码
)
模板:Tag
(
查看源代码
)
返回至
OV5647 Camera
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志