我正在尝试使用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
两张照片都有相同的尺寸
答案 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;