python实现从本地摄像头和网络摄像头截取图片功能


Posted in Python onJuly 11, 2019

python-----从本地摄像头和网络摄像头截取图片 ,具体代码如下所示:

import cv2
# 获取本地摄像头
# folder_path 截取图片的存储目录
def get_img_from_camera_local(folder_path):
  cap = cv2.VideoCapture(0)
  i = 1
  while True:
    ret, frame = cap.read()
    cv2.imshow("capture", frame)
    print str(i)
    cv2.imwrite(folder_path + str(i) + '.jpg', frame) # 存储为图像
    if cv2.waitKey(1) & 0xFF == ord('q'):
      break
    i += 1
  cap.release()
  cv2.destroyAllWindows()
# 获取网络摄像头,格式:rtsp://username:pwd@ip/
# folder_path 截取图片的存储目录
def get_img_from_camera_net(folder_path):
  cap = cv2.VideoCapture('rtsp://username:pwd@ip/')
  i = 1
  while True:
    ret, frame = cap.read()
    cv2.imshow("capture", frame)
    print str(i)
    cv2.imwrite(folder_path + str(i) + '.jpg', frame) # 存储为图像
    if cv2.waitKey(1) & 0xFF == ord('q'):
      break
    i += 1
  cap.release()
  cv2.destroyAllWindows()
# 测试
if __name__ == '__main__':
  folder_path = 'D:\\img_from_camera\\'
  get_img_from_camera_local(folder_path)

PS:下面看下用 python , opencv 打开网络摄像头读取图像

打开网络摄像头用如下代码:

###########################################
import cv2
 url = 'rtsp://admin:password@192.168.1.104:554/11'
 cap = cv2.VideoCapture(url)
 while(cap.isOpened()): 
   # Capture frame-by-frame 
   ret, frame = cap.read() 
   # Display the resulting frame 
   cv2.imshow('frame',frame) 
   if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 
 # When everything done, release the capture 
 cap.release() 
 cv2.destroyAllWindows()
 ############################################

注: 将从摄像头获取的图像从bgr转为rgb : image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

1、cap = cv2.VideoCapture(0)

VideoCapture()中参数是0,表示打开笔记本的内置摄像头,参数是1,表示打开usb摄像头,

参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("../test.avi")

2、ret,frame = cap.read()

 cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,是个三维矩阵。

3、cv2.waitKey(1),waitKey()方法本身表示等待键盘输入,

参数是1,表示延时1ms切换到下一帧图像,对于视频而言;

参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,;

参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。

c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27,即当按esc键是if条件句成立

4、调用release()释放摄像头,调用destroyAllWindows()关闭所有图像窗口。

总结

以上所述是小编给大家介绍的python实现从本地摄像头和网络摄像头截取图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
重命名批处理python脚本
Apr 05 Python
Python生成随机数的方法
Jan 14 Python
深入解析Python中的线程同步方法
Jun 14 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
Python全局变量与局部变量区别及用法分析
Sep 03 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
opencv3/C++图像像素操作详解
Dec 10 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
python常用库之NumPy和sklearn入门
Jul 11 #Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 #Python
Python实现K折交叉验证法的方法步骤
Jul 11 #Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 #Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 #Python
详解python实现交叉验证法与留出法
Jul 11 #Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 #Python
You might like
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
js实现分页功能
2017/05/24 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
Python实现二维有序数组查找的方法
2016/04/27 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
详解python pandas 分组统计的方法
2019/07/30 Python
flask开启多线程的具体方法
2020/08/02 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
计算机专业个人求职自荐信
2013/09/21 职场文书
完整版商业计划书
2014/09/15 职场文书
办理房产证委托书
2014/09/18 职场文书
教师节主题班会方案
2015/08/17 职场文书