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

作者:小呆丶 时间:2022-04-22 22:32:39 

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实现从本地摄像头和网络摄像头截取图片功能,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://www.cnblogs.com/xiaodai0/p/10474750.html

标签:python,摄像头,网络摄像头
0
投稿

猜你喜欢

  • Python issubclass和isinstance函数的具体使用

    2021-08-22 01:39:06
  • python列表[list]和元组(tuple)详情

    2022-05-23 01:14:31
  • Selenium元素的常用操作方法分析

    2021-09-21 14:51:54
  • Pygame实战之实现扎气球游戏

    2023-06-17 10:17:43
  • Oracle 数据 使用游标

    2009-07-02 12:14:00
  • Python的Django框架中自定义模版标签的示例

    2022-10-31 22:28:56
  • Dreamweaver 网页编辑常用表现的实现方法

    2010-10-20 20:05:00
  • python urllib库的使用详解

    2021-06-12 14:42:04
  • Opera下的max-width BUG

    2010-06-26 12:51:00
  • 如何用Cookie进行登录验证?

    2010-06-12 12:34:00
  • python numpy 按行归一化的实例

    2023-04-29 09:14:53
  • Python中的默认参数实例分析

    2023-02-20 20:19:38
  • SQL查询重复记录

    2011-03-27 09:06:00
  • 自己用python做的一款超炫酷音乐播放器

    2021-05-26 04:47:35
  • PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解

    2023-10-15 01:41:57
  • Update 语句

    2009-06-22 12:52:00
  • python几种常用功能实现代码实例

    2023-03-11 07:10:14
  • 给验证码增加干扰的杂点

    2008-05-16 11:34:00
  • Mootools 1.2教程(17)——手风琴插件

    2008-12-11 13:39:00
  • pycharm设置当前工作目录的操作(working directory)

    2023-07-14 00:06:34
  • asp之家 网络编程 m.aspxhome.com