2016-08-02 148 views
0
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中设置了无身份验证。 它投掷的错误连接被拒绝如何通过打开的cv从IP摄像头访问无线摄像头?

回答

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