我有下一个海康威视IP摄像头http://www.hikvision.com/es/Products_accessries_161_i11969.html我在本地网络中配置了它,并且我与浏览器建立了连接,我可以看到摄像头工作正常。我已经在不同的岗位上搜索过这样的镜头,但我做不到。在这里,我把我用来尝试它的代码和响应。 我想得到一个框架,并保存在我的去库存处理后。
import cv2
import requests
import numpy as np
import urllib
import hikvision.api
import requests
import shutil
#Donwload from: https://github.com/fbradyirl/hikvision/archive/master.zip
hik_camera = hikvision.api.CreateDevice('192.168.1.64', username='admin', password=contrasenia)
"""
INFO:hikvision.api:Initialising new hikvision camera client
INFO:hikvision.api:motion_url: http://192.168.1.64/MotionDetection/1
INFO:hikvision.api:ElementTree.register_namespace: http://www.hikvision.com/ver10/XMLSchema
INFO:hikvision.api:Going to probe device to test connection
INFO:hikvision.api:url: http://192.168.1.64/System/deviceInfo
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.64
DEBUG:requests.packages.urllib3.connectionpool:"GET /System/deviceInfo HTTP/1.1" 200 696
DEBUG:hikvision.api:response: <Response [200]>
DEBUG:hikvision.api:status_code 200
DEBUG:hikvision.api:element_to_query: .//{http://www.hikvision.com/ver10/XMLSchema}firmwareVersion result: <Element '{http://www.hikvision.com/ver10/XMLSchema}firmwareVersion' at 0x7fb090b76cc8>
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.64
DEBUG:requests.packages.urllib3.connectionpool:"GET /MotionDetection/1 HTTP/1.1" 200 407
DEBUG:hikvision.api:Response: <?xml version="1.0" encoding="UTF-8"?>
<MotionDetection version="1.0" xmlns="http://www.hikvision.com/ver10/XMLSchema">
<id>1</id>
<enabled>false</enabled>
<regionType>grid</regionType>
<Grid>
<rowGranularity>18</rowGranularity>
<columnGranularity>22</columnGranularity>
</Grid>
<MotionDetectionRegionList>
<sensitivityLevel>0</sensitivityLevel>
</MotionDetectionRegionList>
</MotionDetection>
INFO:hikvision.api:Current motion detection state? enabled: false
WARNING:hikvision.api:sensitivityLevel is 0.
INFO:hikvision.api:sensitivityLevel now set to 1
INFO:hikvision.api:Connected OK!
INFO:hikvision.api:Camera firmaward version: V5.4.3
INFO:hikvision.api:Motion Detection enabled: False
"""
#The method:
"""
hik_camera.__class__( hik_camera.__setattr__(
hik_camera.__delattr__( hik_camera.__sizeof__(
hik_camera.__dict__ hik_camera.__str__(
hik_camera.__dir__( hik_camera.__subclasshook__(
hik_camera.__doc__ hik_camera.__weakref__
hik_camera.__eq__( hik_camera._base
hik_camera.__format__( hik_camera._host
hik_camera.__ge__( hik_camera._password
hik_camera.__getattribute__( hik_camera._sensitivity_level
hik_camera.__gt__( hik_camera._username
hik_camera.__hash__( hik_camera._xml_namespace
hik_camera.__init__( hik_camera.disable_motion_detection(
hik_camera.__le__( hik_camera.enable_motion_detection(
hik_camera.__lt__( hik_camera.get_about(
hik_camera.__module__ hik_camera.get_version(
hik_camera.__ne__( hik_camera.is_motion_detection_enabled(
hik_camera.__new__( hik_camera.motion_url
hik_camera.__reduce__( hik_camera.put_motion_detection_xml(
hik_camera.__reduce_ex__( hik_camera.xml_motion_detection_off
hik_camera.__repr__( hik_camera.xml_motion_detection_on
"""
hik_camera
#<hikvision.api.CreateDevice object at 0x7fb09183ab38>
有了这段代码,我无法获得一个帧。
其他选项:
camera = requests.get('http://192.168.1.64', auth=('admin', contrasenia), stream=True)
#INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.64
#DEBUG:requests.packages.urllib3.connectionpool:"GET / HTTP/1.1" 200 480
chunk = camera.iter_content(chunk_size=1024)
chunk
#<generator object iter_slices at 0x7fb090b7a150>
bytes += bytes()
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#TypeError: unsupported operand type(s) for +=: 'type' and 'bytes'
其他:
stream = urllib.request.urlopen("http://192.168.1.64")
#<http.client.HTTPResponse object at 0x7fb090b82320>
其他:
out_cv2 = cv2.VideoCapture('http://192.168.1.64')
#<VideoCapture 0x7fb090b6dc10>
cv2.imshow(out_cv2)
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#TypeError: Required argument 'mat' (pos 2) not found
ret, frame = out_cv2.read()
cv2.imshow('out', frame)
#OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /io/opencv/modules/highgui/src/window.cpp, line 304
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#cv2.error: /io/opencv/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshow
ret
#False
frame
#
其他:
from requests.auth import HTTPBasicAuth
requ = requests.get('http://192.168.1.64', auth=HTTPBasicAuth('admin', contrasenia), stream=True)
out_file = open('img.png', 'wb')
shutil.copyfileobj(requ.raw, out_file)
#The file is empty
这段代码来自其他有类似问题的帖子,但我不能用它来获取我的目标。我能做什么?
我在海康威视皮皮里找到这个
我的电脑有一个问题,opencv的版本有问题。现在,我有了opencv 3.2,我可以做下一行:
我可以拍照。
转到您的相机设置(网络配置)并检查de rtsp端口,在我的情况下是555。
我有一个海康威视DS-2CD2D14WD,在我的情况下,我必须使用以下:
rtsp://yourusername:yourpassword@172.16.30.248:555/Streaming/channels/2/
你可以在一个类似VLC播放器的程序中测试你的配置。
IP地址后的路径可以根据您的型号而更改,请检查
其他海康威视型号的此页:
https://www.ispyconnect.com/man.aspx?n=Hikvision。
我建议您查看这个github页面:
https://github.com/JFF-Bohdan/pynvr.git
请告诉我这些信息对你是否有用。
示例:
相关问题 更多 >
编程相关推荐