2014-02-12 3 views
1

Я пытаюсь получить доступ к видео с IP-камеры. Я использую OpenCV и Python для этого. Код, который я попробовал приведен ниже:IP-камера Python error

import numpy as np 
import cv2 
from cv2 import cv 

camera=cv.CaptureFromFile("http://root:[email protected]/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 

На выполнении этого кода на выходе, что я получаю:

Image not converted 

С помощью другого метода, CaptureFromCAM вместо CaptureFromFile код:

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) 

Когда я запускаю этот код ошибки я получаю:

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

Я прочитал об этом, и ошибка SampleCB() в том случае, если размер буфера не соответствует ожидаемому размеру ввода. Я попытался изменить потоковое разрешение, но ничего не работает. Я последовал за this нитью и this нить. Они дают код C++ и при переходе на Python (приведенный выше код) он не работает. Или нить дает код для обнаружения движения. Я использую Windows   7 и Eclipse с Pydev для разработки. Что я делаю?

+0

http://stackoverflow.com/a/11449901/773226 –

+0

@ AnoopK.Prabhu же SampleCB() ошибка –

+0

@PrakharMohanSrivastava Пожалуйста, найти и опубликовать ссылку на руководство для вашей камеры. Возможно, вы используете неправильные параметры в своем URL-адресе? Кроме того, это звучит как одна небольшая деталь, вероятно, неправильная, поэтому [здесь находится чат] (http://chat.stackoverflow.com/rooms/info/47550/http-stackoverflow-com-questions-21721813-ip-camera -python-error? tab = general) для всех, кто обсуждает это, поэтому нам не нужно использовать комментарии для обсуждения. – KobeJohn

ответ

1

О, пожалуйста, придерживайтесь cv2 API. не старый резюме один больше не доступны в текущих версиях OpenCV:

import numpy as np 
import cv2 

cv2.namedWindow("win") 
camera = cv2.VideoCapture("http://username:[email protected]/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 
+0

Программа завершается без предоставления какого-либо результата? Вы уверены, что ваш код верен? Или мне нужно что-то добавить? –

+0

он не смог открыть ваш URL-адрес, то – berak

+0

Я проверил с помощью своего веб-браузера, он открывает URL-адрес. Может ли что-то еще пойти не так? –