我希望每隔一段时间从我的本地IP摄像机拍摄一张照片,直接连接到我的电脑,没有路由器,没有任何东西,只有我的IP摄像机通过网线连接到我的电脑。我只需输入其IP地址并登录即可在Mozilla firefox浏览器上看到我的IP摄像头,我也可以通过点击Web界面上的快照按钮从那里获取快照。我想要做的是制作一个python脚本,从这个IP cam获取快照(例如,每10秒)。我试过这个剧本:
import base64
import time
import urllib2
import cv2
import numpy as np
class ipCamera(object):
def __init__(self, url, user=None, password=None):
self.url = url
auth_encoded = base64.encodestring('%s:%s' % (user, password))[:-1]
self.req = urllib2.Request(self.url)
self.req.add_header('Authorization', 'Basic %s' % auth_encoded)
def get_frame(self):
response = urllib2.urlopen(self.req)
img_array = np.asarray(bytearray(response.read()), dtype=np.uint8)
frame = cv2.imdecode(img_array, 1)
return frame
camaraIP = ipCamera('http://IPaddress/snapshot','username','password')
imagen_tomada=camaraIP.get_frame()
file = "IPimage.jpg"
cv2.imwrite(file, imagen_tomada)
使用Tenvis IP摄像头,它工作正常,因为有了这个品牌的IP摄像机(Tenvis),每当你拍摄snpashot时,它会自动打开一个新的浏览器标签,在URL的末尾带有“快照”,这就是URL我传递给程序,它工作正常,它可以完美地捕捉.jpg格式的图像....但我现在使用的相机类型是DAHUA IP相机,它不会打开另一个浏览器选项卡,当我按下快照按钮,它会打开我的Windows图像查看器并向我显示图片并将其以.bmp格式保存到我的计算机中。所以,如果有人可以帮助我,我做了很多研究没有结果,我正在使用python 2.7,OpenCv 3.0版,我已经安装了PIL和PILLOW,我在64位Windows 10机器上如前所述,相机的品牌是大华网络摄像机,相机型号为DH-IPC-HFW1105SN-0360B。非常感谢你的时间,我非常感谢你的帮助。