3

我正在尝试使用我用 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 相机拍摄的照片?

  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 

两张图片的尺寸相同

4

2 回答 2

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)
于 2012-11-10T20:59:22.517 回答
2

这是我正在使用 Andrea Diaz 的想法和带有 opencv2 的 python 从运行 Android IP 摄像头的手机中流式传输的一些代码...

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;
于 2012-11-23T23:13:20.107 回答