Error de la cámara IP Python

Estoy tratando de acceder a un video desde una cámara IP. Estoy usando OpenCV y Python para hacerlo. El código que he probado se da a continuación:

import numpy as np import cv2 from cv2 import cv camera=cv.CaptureFromFile("http://root:root@192.168.0.90/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=30&.mjpg") if camera is None: print 'Camera is null' else: print 'Camera is not null' cv.NamedWindow("win") while True: image=cv.QueryFrame(camera) cv.ShowImage("win", image) k=int(cv.WaitKey(10)) if k is 27: break 

Al ejecutar este código, el resultado que obtengo es:

 Image not converted 

Al usar otro método, CaptureFromCAM lugar de CaptureFromFile el código es:

 import numpy as np import cv2 from cv2 import cv camera=cv.CaptureFromCAM(0) if camera is None: print 'Camera is null' else: print 'Camera is not null' cv.NamedWindow("win") while True: image=cv.QueryFrame(camera) if image is None: print 'No conversion to IPL Image' break else: cv.ShowImage("win", image) 

Cuando ejecuto este código, el error que obtengo es:

 ERROR: SampleCB() - buffer sizes do not match No conversion to IPL Image 

Lo leí, y el error SampleCB() se produce en el caso de que el tamaño del búfer no coincida con el tamaño de entrada esperado. Intenté cambiar la resolución de la transmisión, pero nada parece funcionar. Seguí este hilo y este hilo. Están dando el código C ++ y en la conversión a Python (el código dado anteriormente) no funciona. O el hilo da el código para la detección de movimiento. Estoy usando Windows 7 y Eclipse con Pydev para el desarrollo. ¿Qué debo hacer?

Oh, por favor quédate con la API cv2. El antiguo cv one ya no está disponible en las versiones actuales de OpenCV:

 import numpy as np import cv2 cv2.namedWindow("win") camera = cv2.VideoCapture("http://username:pass@192.168.0.90/axis-cgi/mjpg/video.cgi?resolution=640x480&req_fps=30&.mjpg") while camera.isOpened(): ok, image = camera.read() if not ok: print 'no image read' break cv2.imshow("win", image) k = cv2.waitKey(1) & 0xff if k == 27 : break # Esc pressed 

Mira este ejemplo con python y OpenCV, IPCAM hikvision

 import numpy as np import cv2 cap = cv2.VideoCapture() cap.open("rtsp://USER:PASS@IP:PORT/Streaming/Channels/2") while(True): # Capture frame-by-frame ret, frame = cap.read() # Our operations on the frame come here #gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # Display the resulting frame cv2.imshow('Salida',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break # When everything done, release the capture cap.release() cv2.destroyAllWindows() 

Vea en la ventana: Obtenga video de IPCAM con python y OpenCV