树莓派3b连接摄像头模块并用python编程拍照和录像
来源:互联网 发布:明星p图软件 编辑:程序博客网 时间:2024/05/29 04:50
原文:https://www.raspberrypi.org/learning/getting-started-with-picamera/worksheet/
一.摄像头安装
如图从两端拔起,插入,再按紧
二.摄像头预览
1. 打开python3,建立名为camera.py的新文件,注意,千万不能命名为picamera.py
2. 在文件中写入一下代码,运行即可,注意:远程连接(例如:SSH和VNC)时不允许访问摄像头
camera.stop_preview()from picamera import PiCamerafrom time import sleepcamera = PiCamera()camera.start_preview()
sleep(10)
3. 如果图像时上下颠倒的,可以用一下代码实现翻转
camera
.rotation
=180
camera
.start_preview
()
sleep
(10)
camera
.stop_preview
()
可以设置旋转的度数为90,180或270,也可以设置为0
4. 通过改变alpha的值,可以修改摄像头拍摄图像的透明度
frompicamera
importPiCamera
fromtime
importsleep
camera
=PiCamera
()
camera
.start_preview
(alpha
=200)
sleep
(10)
camera
.stop_preview
()
alpha的取值范围为0-255
三.拍照片
1. 修改代码:减少sleep并添加camera.capture()一行
camera
.start_preview
()
sleep
(5)
camera
.capture
('/home/pi/Desktop/image.jpg')
camera
.stop_preview
()
捕获图片前,至少要给传感器两秒钟时间感光
2. 增加一个循环就能实现连拍,每隔5秒拍一张,拍完后预览关闭,桌面上就有五张图了
camera
.start_preview
()
fori
inrange
(5):
sleep
(5)
camera
.capture
('/home/pi/Desktop/image%s.jpg'%
i
)
camera
.stop_preview
()
3. 查看图片:gpicview image1.jpg
四.拍视屏
1. 修改代码:用start_recording()和stop_recording()代替capture()
camera
.start_preview
()
camera
.start_recording
('/home/pi/video.h264')
sleep
(10)
camera
.stop_recording
()
camera
.stop_preview
()
2. 运行程序,将拍摄10秒的视屏,然后关闭预览
3. 播放视屏需要执行如下指令:
omxplayer video
.h264
4. 播放时可能会出现播放速度比实际速度快的情况,这是omxplayer的快速帧速率导致的
五.进阶教程
1. 摄像头的分辨率可以自己设定,但要记住,照片的最大分辨率时2592x1944,视频的最大分辨率为1920x1080,可以通过一下代码设定分辨率,为了配合最大分辨率,需要设置帧速率为15
camera
.resolution
=(2592,
1944)
camera
.framerate
=15
camera
.start_preview
()
sleep
(5)
camera
.capture
('/home/pi/Desktop/max.jpg')
camera
.stop_preview
()
2. 最小分辨率允许设为64x64
3. 用annotate_text很方便地为图像添加文字
camera
.start_preview
()
camera
.annotate_text
="Hello world!"
sleep
(5)
camera
.capture
('/home/pi/Desktop/text.jpg')
camera
.stop_preview
()
4. 改变亮度设置,范围是0-100,预设为50
camera
.start_preview
()
camera
.brightness
=70
sleep
(5)
camera
.capture
('/home/pi/Desktop/bright.jpg')
camera
.stop_preview
()
5. 在循环中调整亮度,并标注亮度等级
camera
.start_preview
()
fori
inrange
(100):
camera
.annotate_text
="Brightness: %s"
%
i
camera
.brightness
=i
sleep
(0.1)
camera
.stop_preview
()
6. 调节文字大小,6-160,预设为32
camera
.annotate_text_size
=50
7. 改变文字的颜色,首先要引入Color,然后就能用如下代码实现
frompicamera
importPiCamera
,Color
camera
.start_preview
()
camera
.annotate_background
=Color
('blue')
camera
.annotate_foreground
=Color
('yellow')
camera
.annotate_text
=" Hello world "
sleep
(5)
camera
.stop_preview
()
8. 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。预设为none。
camera
.start_preview
()
camera
.image_effect
='colorswap'
sleep
(5)
camera
.capture
('/home/pi/Desktop/colorswap.jpg')
camera
.stop_preview
()
9. 用循环显示不同效果的预览
camera
.start_preview
()
foreffect
incamera
.IMAGE_EFFECTS
:
camera
.image_effect
=effect
camera
.annotate_text
="Effect: %s"
%
effect
sleep
(5)
camera
.stop_preview
()
10. camera.awb_mode可以设置白平衡,可选参数有:off,auto, sunlight, cloudy, shade, tungsten, fluorescent,incandescent, flash和horizon,预设为auto
camera
.start_preview
()
camera
.awb_mode
='sunlight'
sleep
(5)
camera
.capture
('/home/pi/Desktop/sunlight.jpg')
camera
.stop_preview
()
可以用camera.AWB_MODES循环展示多个白平衡模式
11. camera.exposure_mode可以设置曝光,可选参数有:off,auto,night,nightpreview,nightpreview,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks。预设是auto
camera
.start_preview
()
camera
.exposure_mode
='beach'
sleep
(5)
camera
.capture
('/home/pi/Desktop/beach.jpg')
camera
.stop_preview
()
可以用camera.EXPOSURE_MODES循环展示多个曝光模式
- 树莓派3b连接摄像头模块并用python编程拍照和录像
- 树莓派3b连接GPS+BD模块并用python获取数据(USB版)
- 树莓派3b连接GPS+BD模块并用python获取数据(串口版)
- 直接调用硬件摄像头录像和拍照
- C#捕获摄像头进行拍照和录像资料总结
- C#捕获摄像头进行拍照和录像资料总结
- C#捕获摄像头进行拍照和录像资料总结
- C#捕获摄像头进行拍照和录像资料总结
- 录像、录音和拍照
- 录像和拍照
- html5打开摄像头并用canvas模拟拍照
- Windows Mobile 调用摄像头拍照录像
- 【OpenCV学习】摄像头显示、录像、拍照程序
- VB调用摄像头录像,拍照,保存
- Unity如何调用安卓手机摄像头实现拍照和录像
- android 录像和拍照功能
- android 录像和拍照功能
- android 录像和拍照功能
- C++Primer----表达式
- centos6下安装rabbitmq
- ListView显示数据,弹出AlertDialog,调起打电话功能
- IO-文件流-两种正确关闭资源的方法
- 程序员进阶路上不能错过的史上最全技术知识图谱秘籍 #精选大数据前端开发JAVA 今天在技术大海中游啊游游啊游,哇啊哈哈 ^_^发现了一份非常有用的超级技术图谱诶!
- 树莓派3b连接摄像头模块并用python编程拍照和录像
- 使用IDEA创建HelloWorld工程
- MyEclipse 2014专业版的破解--Windows系统的软件安装
- js 数组去重
- Android开发小技巧系列(二)
- ActionBar详解
- 关于ffmpeg工具的使用总结
- 关于Java中的注解
- GlusterFS企业级功能之EC纠删码