2014-02-12 4 views
1

IP 카메라에서 비디오에 액세스하려고합니다. OpenCV와 Python을 사용하고 있습니다. 내가 시도 코드는 아래와 같습니다 : 나는 점점 오전 출력이 코드를 실행하기에IP 카메라 파이썬 오류

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++ 코드를 제공하고 파이썬으로의 변환 (위에 주어진 코드)이 작동하지 않습니다. 또는 스레드가 모션 감지 코드를 제공합니다. 나는 윈도우   7 및 Eclipse과 Pydev을 사용하고 있습니다. 나는 무엇을해야합니까?

+0

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

+0

@ AnoopK.Prabhu 같은 SampleCB() 오류 –

+0

@PrakharMohanSrivastava 발견하고 게시하시기 바랍니다 : 오래된 이력서 하나는 전류 OpenCV의 버전에서 더 사용할 수 없습니다 카메라의 설명서 링크를 클릭하십시오. URL에 잘못된 매개 변수가 사용되었을 수 있습니다. 또한,이 하나의 작은 세부 사항은 아마 틀린 것 같아요, 그래서 [여기는 대화방입니다] (http://chat.stackoverflow.com/rooms/info/47550/http-stackoverflow-com-questions-21721813-ip-camera -python-error? tab = general) 토론을 위해 의견을 쓸 필요가 없도록 누구나 토론 할 수 있습니다. – KobeJohn

답변

1

아, cv2 API을 붙이십시오.

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이 열려 있습니다. 뭔가 잘못 될 수 있습니까? –