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

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实现从本地摄像头和网络摄像头截取图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值