如何通过开放的cv从IP网络摄像头访问无线摄像头?

时间:2016-08-02 07:02:15

标签: python opencv video-capture

import cv2
import urllib
import numpy as np

stream=urllib.urlopen('http://192.168.1.5:8080/frame.mjpg')
bytes=''
while True:
    bytes+=stream.read(1024)
    a = bytes.find('\xff\xd8')
    b = bytes.find('\xff\xd9')
    if a!=-1 and b!=-1:
        jpg = bytes[a:b+2]
    bytes= bytes[b+2:]
    i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.CV_LOAD_IMAGE_COLOR)
    cv2.imshow('i',i)
    if cv2.waitKey(1) ==27:
        exit(0)

代码也没有抛出任何错误,我在IPWebcam中设置了无身份验证。 它抛出错误连接被拒绝

1 个答案:

答案 0 :(得分:0)

试试这个:

import urllib
import cv2
import numpy as np
import time

# Replace the URL with your own IPwebcam shot.jpg IP:port
url='http://192.168.20.108:8080/shot.jpg'


while True:
    # Use urllib to get the image from the IP camera
    imgResp = urllib.urlopen(url)

    # Numpy to convert into a array
    imgNp = np.array(bytearray(imgResp.read()),dtype=np.uint8)

    # Finally decode the array to OpenCV usable format ;)
    img = cv2.imdecode(imgNp,-1)


    # put the image on screen
    cv2.imshow('IPWebcam',img)

    #To give the processor some less stress
    #time.sleep(0.1)

    # Quit if q is pressed
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break