2012-11-10 144 views
3

我想在opencv中使用Android IP攝像頭拍攝的照片(http://192.168.0.10:8080/shot.jpg),但它不起作用,我得到一個空白窗口。 我用另一張圖片(http://images2.wikia.nocookie.net/_ cb20110420175105/agallas/es/images/thumb/1/11/Agallas-el-perro-cobarde-125(1).jpg /640px-Agallas-el-perro-cobarde-125_(1).jpg),它完美的工作。 爲什麼它不能用ip相機拍攝的照片?使用IP攝像頭的OpenCv照片

import sys, cv 
    import numpy as np 
    #photo = "http://images2.wikia.nocookie.net/__cb20110420175105/agallas/es/images/thumb/1/11/Agallas-el-perro-cobarde-125_(1).jpg/640px-Agallas-el-perro-cobarde-125_(1).jpg" 
    photo = "http://192.168.0.10:8080/shot.jpg" 
    img=cv.CaptureFromFile(photo) 
    while True: 
    frame = cv.QueryFrame(img) 
    cv.ShowImage('Foto',frame) 
    if cv.WaitKey(30)==27: 
     break 

兩個圖片具有相同的尺寸

+0

是否與'cv2.imread'工作? –

+0

不,它不起作用 –

+0

我不認爲IP攝像機在這裏有什麼區別。你能證實路徑是絕對正確的嗎?你可以用其他方式訪問照片,比如你的互聯網瀏覽器嗎? – james

回答

2

這可能不是一個解決我的問題非常有效的方式,但它的作品。

import urllib 
import cv 

urllib.urlretrieve("http://192.168.0.10:8080/shot.jpg", "foto.jpg") 
imagen=cv.LoadImage('foto.jpg') 
cv.ShowImage('Image',imagen) 
2

下面是一些我所工作從運行Android IP攝像頭,採用安德烈·迪亞茲的想法,並與opencv2蟒蛇我的手機流代碼...

import cv2 
import urllib 

while True: 
    urllib.urlretrieve("http://192.168.0.10:8080/shot.jpg", "foto.jpg") 
    src_image = cv2.imread('foto.jpg', 0) 
    cv2.imshow('Viewer',src_image) 
    # read user keyboard for 5ms, and break on any keypress.  
    if (cv2.waitKey (5) != -1): 
     break; 
相關問題