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中List.index()方法的使用教程
May 20 Python
python实现中文转换url编码的方法
Jun 14 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
Python找出最小的K个数实例代码
Jan 04 Python
Python字典操作详细介绍及字典内建方法分享
Jan 04 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
python3排序的实例方法
Oct 20 Python
Python常用扩展插件使用教程解析
Nov 02 Python
python实现定时发送邮件
Dec 23 Python
基于Python 函数和方法的区别说明
Mar 24 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
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
javascript如何写热点图
2015/12/08 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
给Python初学者的一些编程技巧
2015/04/03 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
python离线安装外部依赖包的实现
2020/02/13 Python
python中sys模块是做什么用的
2020/08/16 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
error和exception有什么区别
2012/10/02 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
华为python面试题
2016/05/03 面试题
中专毕业生自我鉴定范文
2013/11/09 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
毕业设计致谢语
2015/05/14 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js