使用python脚本

时间:2016-12-16 21:38:13

标签: python opencv camera ip

我希望每隔一段时间从我的本地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。非常感谢你的时间,我非常感谢你的帮助。

0 个答案:

没有答案