OpenCv使用IP摄像头照片

时间:2012-11-10 17:40:33

标签: android python opencv ip-camera

我正在尝试使用Android IP摄像头(http://192.168.0.10:8080/shot.jpg)拍摄的照片在opencv中工作,但它不起作用,我得到一个空白窗口。 我尝试了另一张图片(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 camera拍摄的照片?

  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 

两张照片都有相同的尺寸

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:2)

以下是我使用安德里亚·迪亚兹的想法和使用opencv2的python从我的手机运行Android IP Camera进行流式处理的一些代码......

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;