12

我使用 python 3.7 和 opencv 制作了一个简单的运动检测器程序,有没有办法使用 python 访问我手机的摄像头并使用蓝牙或移动热点将视频流式传输到我的笔记本电脑,以便我可以处理笔记本电脑上的数据?我基本上只是将手机用作可拆卸的相机。

4

2 回答 2

11

使用 IP 网络摄像头 Android 应用程序。url 由 ip 网络摄像头给出,最后我为视频流添加了视频,或者您可以在 cap.read() 之前的 for 循环中使用 url = ' http://192.168.137.138:8080/shot.jpg '

这对我来说完美无瑕,分辨率为 1280 x 720 注意你的 url ip 会改变,但最后会添加视频

import cv2 
import numpy as np`
url = 'http://192.168.137.138:8080/video'
cap = cv2.VideoCapture(url)
while(True):
    ret, frame = cap.read()
    if frame is not None:
        cv2.imshow('frame',frame)
    q = cv2.waitKey(1)
    if q == ord("q"):
        break
cv2.destroyAllWindows()
于 2019-08-07T14:11:40.583 回答
10

您可以使用 IP Webcam android 应用程序执行此操作。

脚步 -

  1. 在您的安卓手机中安装应用程序。
  2. 在本地网络中连接您的笔记本电脑和手机(您可以使用移动热点)。
  3. 启动应用程序并选择启动服务器选项,应用程序将开始捕获视频并显示 IP 地址。
  4. 使用此 IP 地址通过以下 python 代码读取视频源。
  5. 使用 OpenCV 处理视频。

Python代码 -

import urllib
import cv2
import numpy as np
import ssl

ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = 'Your URL'

while True:
    imgResp = urllib3.urlopen(url)
    imgNp = np.array(bytearray(imgResp.read()), dtype=np.uint8)
    img = cv2.imdecode(imgNp, -1)
    cv2.imshow('temp',cv2.resize(img,(600,400)))
    q = cv2.waitKey(1)
    if q == ord("q"):
        break;

cv2.destroyAllWindows()

您可以在此处找到 Android 应用程序 - IP 网络摄像头

这个视频将更好地解释 -如何与 OpenCV 一起使用

于 2018-11-03T11:55:16.253 回答