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之让人欢喜让人忧的迭代
Oct 02 Python
Python3 模块、包调用&路径详解
Oct 25 Python
Python模块WSGI使用详解
Feb 02 Python
pandas数值计算与排序方法
Apr 12 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 Python
详解Python的三种可变参数
May 08 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 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 str_replace的替换漏洞
2008/03/15 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
php rsa加密解密使用详解
2015/01/14 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
浅谈django中的认证与登录
2016/10/31 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
Python随机函数random()使用方法小结
2018/04/29 Python
python 编写简单网页服务器的实例
2018/06/01 Python
Python logging模块用法示例
2018/08/28 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
群众路线剖析材料
2014/02/02 职场文书
部队党性分析材料
2014/02/16 职场文书
消防安全标语
2014/06/07 职场文书
会计专业自荐书
2014/07/08 职场文书
医院营销工作计划
2015/01/16 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS