picamera 1.10 教程及api中文简译(二)快速理解picamera
2016-01-12 14:46
405 查看
3、快速理解picamera
通过默认配置,开启摄像头,并预热10秒钟。
运行后,可以看到摄像头的指示灯亮起10秒钟后熄灭。这里需要注意的是,每次调用后都需要通过close释放掉picamera的资源。
下面演示了python的with语句块,来隐式的开启picamera执行并最后释放掉资源(调用了close())
下面这个例子介绍了picamera的某些属性可以被动态调整。在例子中,亮度属性被逐渐增加。
下面这个例子演示了,picamera将分辨率设置为640*480并开启摄像头进行预览60秒,并将预览内容写入名为”foo.h264”的文件中。
摄像头的默认分辨率为显示器的分辨率,如果显示器被禁用,则默认分辨率为1280*768。
这里需要注意的是,wait_recording()方法替代了time.sleep()方法,并且同时开始录制,此方法会抛出错误(例如磁盘已满),所以如果用time.sleep来代替wait_recording的话,stop_recording()的执行会被time.sleep所阻断,带休眠时间以后才会被执行。
下面这个例子演示的是,在开启摄像头之前设置了一些参数,然后捕捉一张照片存储到foo.jpg的文件中:
下面这个例子可以利用picamera来给拍摄的图像上打上Exif标记。
接下来的文档会详细介绍Exif标记的完整属性。
下面这个例子演示拍摄连续拍摄100次,每次暂停60秒,并且将拍摄的内容以“image{counter:02d}.jpg的格式保存在磁盘上,其中d为递增变量。
下面这个例子演示了,在低分辨率的情况下,通过capture_sequence方法快速捕捉图像:
下面这个例子演示了,通过picamera来捕捉一张图像,并且通过RGB格式进行解码,生成一个numpy的图像阵列。
通过默认配置,开启摄像头,并预热10秒钟。
import time import picamera camera = picamera.PiCamera() try: camera.start_preview() time.sleep(10) camera.stop_preview() finally: camera.close()
运行后,可以看到摄像头的指示灯亮起10秒钟后熄灭。这里需要注意的是,每次调用后都需要通过close释放掉picamera的资源。
下面演示了python的with语句块,来隐式的开启picamera执行并最后释放掉资源(调用了close())
import time import picamera with picamera.PiCamera() as camera: camera.start_preview() time.sleep(10) camera.stop_preview()
下面这个例子介绍了picamera的某些属性可以被动态调整。在例子中,亮度属性被逐渐增加。
import time import picamera with picamera.PiCamera() as camera: camera.start_preview() try: for i in range(100): camera.brightness = i time.sleep(0.2) finally: camera.stop_preview()
下面这个例子演示了,picamera将分辨率设置为640*480并开启摄像头进行预览60秒,并将预览内容写入名为”foo.h264”的文件中。
import picamera with picamera.PiCamera() as camera: camera.resolution = (640, 480) camera.start_preview() camera.start_recording('foo.h264') camera.wait_recording(60) camera.stop_recording() camera.stop_preview()
摄像头的默认分辨率为显示器的分辨率,如果显示器被禁用,则默认分辨率为1280*768。
这里需要注意的是,wait_recording()方法替代了time.sleep()方法,并且同时开始录制,此方法会抛出错误(例如磁盘已满),所以如果用time.sleep来代替wait_recording的话,stop_recording()的执行会被time.sleep所阻断,带休眠时间以后才会被执行。
下面这个例子演示的是,在开启摄像头之前设置了一些参数,然后捕捉一张照片存储到foo.jpg的文件中:
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (1280, 720) camera.start_preview() camera.exposure_compensation = 2 camera.exposure_mode = 'spotlight' camera.meter_mode = 'matrix' camera.image_effect = 'gpen' # 初始化预热摄像头 time.sleep(2) camera.capture('foo.jpg') camera.stop_preview()
下面这个例子可以利用picamera来给拍摄的图像上打上Exif标记。
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (2592, 1944) camera.start_preview() time.sleep(2) camera.exif_tags['IFD0.Artist'] = 'Me!' camera.exif_tags['IFD0.Copyright'] = 'Copyright (c) 2013 Me!' camera.capture('foo.jpg') camera.stop_preview()
接下来的文档会详细介绍Exif标记的完整属性。
下面这个例子演示拍摄连续拍摄100次,每次暂停60秒,并且将拍摄的内容以“image{counter:02d}.jpg的格式保存在磁盘上,其中d为递增变量。
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (1280, 720) camera.start_preview() time.sleep(1) for i, filename in enumerate(camera.capture_continuous('image{counter:02d}.jpg')): print('Captured image %s' % filename) if i == 100: break time.sleep(60) camera.stop_preview()
下面这个例子演示了,在低分辨率的情况下,通过capture_sequence方法快速捕捉图像:
import time import picamera with picamera.PiCamera() as camera: camera.resolution = (640, 480) camera.start_preview() start = time.time() camera.capture_sequence(( 'image%03d.jpg' % i for i in range(120) ), use_video_port=True) print('Captured 120 images at %.2ffps' % (120 / (time.time() - start))) camera.stop_preview()
下面这个例子演示了,通过picamera来捕捉一张图像,并且通过RGB格式进行解码,生成一个numpy的图像阵列。
import time import picamera import picamera.array with picamera.PiCamera() as camera: with picamera.array.PiRGBArray(camera) as stream: camera.resolution = (1024, 768) camera.start_preview() time.sleep(2) camera.capture(stream, 'rgb') print(stream.array.shape)
相关文章推荐
- IOS中延时执行的几种方式的比较和汇总
- notepad++每行首尾添加内容
- pcntl_signal(): Error assigning signal
- Swift入门 05数组
- Swift入门 04字符串
- Android 监听输入法隐藏与显示状态切换
- vc设置按钮文字颜色
- Swift入门 03循环
- Shooting Game
- Active X方法的返回值
- UILayoutGuide maker Crash
- Swift入门 02逻辑分支
- HDU2060Snooker
- 安卓动画详解——帧动画
- iOS应用性能调优的25个建议和技巧
- JAVA Builder模式构建MAP/LIST的示例
- maven 错误列表
- 一个div 实现六个矩形
- [Andorid开发艺术探索 读书笔记]View的事件体系(二)
- 野生Js技术之字符画视频