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

 更新时间:2019年07月11日 13:55:11   作者:小呆丶   我要评论

这篇文章主要介绍了python实现从本地摄像头和网络摄像头截取图片功能 ,文中给大家提到了python , opencv 打开网络摄像头读取图像的实现代码,需要的朋友可以参考下

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机器学习之决策树分类详解

    这篇文章主要介绍了python机器学习之决策树分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python常用模块之requests模块用法分析

    Python常用模块之requests模块用法分析

    这篇文章主要介绍了Python常用模块之requests模块用法,结合实例形式分析了Python使用requests模块发送GET、POST请求及响应相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 解决pandas .to_excel不覆盖已有sheet的问题

    解决pandas .to_excel不覆盖已有sheet的问题

    今天小编就为大家分享一篇解决pandas .to_excel不覆盖已有sheet的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python实现无证书加密解密实例

    python实现无证书加密解密实例

    这篇文章主要介绍了python实现无证书加密解密的方法,实例讲述了无证书加密解密的原理与具体实现过程,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • python实现比较两段文本不同之处的方法

    python实现比较两段文本不同之处的方法

    这篇文章主要介绍了python实现比较两段文本不同之处的方法,涉及Python针对文本与字符串的相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • Python3使用requests登录人人影视网站的方法

    Python3使用requests登录人人影视网站的方法

    通过本文给大家介绍python代码实现使用requests登录网站的过程。非常具有参考价值,感兴趣的朋友一起学习吧
    2016-05-05
  • 使用celery执行Django串行异步任务的方法步骤

    使用celery执行Django串行异步任务的方法步骤

    这篇文章主要介绍了使用celery执行Django串行异步任务,文中通过示例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Python简单进程锁代码实例

    Python简单进程锁代码实例

    这篇文章主要介绍了Python简单进程锁代码实例,本文讲解了线程和进程的相关知识,然后给出了Python的实现代码,需要的朋友可以参考下
    2015-04-04
  • 在Python中使用元类的教程

    在Python中使用元类的教程

    这篇文章主要介绍了在Python中使用元类的教程,是Python当中的基础知识,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • python安装requests库的实例代码

    python安装requests库的实例代码

    在本篇文章中小编给大家分享了关于python怎么安装requests库的知识点以及代码内容,有兴趣的朋友们学习下。
    2019-06-06

最新评论