【问题标题】:OpenCv using an IP camera photo使用 IP 摄像机照片的 OpenCv
【发布时间】:2012-10-30 17:44:07
【问题描述】:

我正在尝试使用我用 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 

两张图片的尺寸相同

【问题讨论】:

  • 它是否适用于cv2.imread
  • 我认为 IP 摄像机在这里没有任何区别。你能验证路径是绝对正确的吗?你可以通过其他方式访问照片吗,比如你的互联网浏览器?
  • 是的,我可以通过手机观看视频,也可以通过互联网浏览器拍照。我也试过:192.168.0.10:8080/photo.jpg192.168.0.10:8080/photoaf.jpg

标签: android python opencv ip-camera


【解决方案1】:

这可能不是解决我的问题的一种非常有效的方法,但它确实有效。

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】:

    这是我正在使用 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-13
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多