📜  将你的安卓手机摄像头连接到 OpenCV – Python

📅  最后修改于: 2022-05-13 01:54:58.972000             🧑  作者: Mango

将你的安卓手机摄像头连接到 OpenCV – Python

先决条件:OpenCV

OpenCV是一个巨大的开源库,用于计算机视觉、机器学习和图像处理。 OpenCV 支持多种编程语言,如Python、C++、 Java等。它可以处理图像和视频以识别对象、面部甚至人类的笔迹。

很多时候,使用我们 PC 的网络摄像头进行计算机视觉或图像处理并不是一个很好的选择。也许我们想提高我们网络摄像头的相机质量,或者我们想创建一些使用安卓相机作为媒介的图像处理应用程序。

本文使用 Windows 来执行此操作。但是代码的基础知识在其他操作系统上也是相同的。

方法

  • 在您的手机上下载并安装 IP 网络摄像头应用程序。
  • 然后确保您的 PC 和手机都连接到同一网络。在两者上打开 IP 网络摄像头应用程序,单击“启动服务器”(通常位于底部)。这将在您的手机上打开一个摄像头。
  • 一个 URL 将显示在电话屏幕上,在您的 PC 浏览器上输入相同的 URL,然后在“视频渲染器”部分下,单击“Javascript”。

  • 您可以看到手机上捕获的视频,该视频开始显示在浏览器上。现在,我们要做的是,使用请求模块从 URL 获取图像数据,并使用 NumPy 将其转换为图像帧,最后,开始使用我们的 Android 相机作为Python中的网络摄像头。
  • 在代码中:
    • 导入模块
    • 添加手机中显示的网址
    • 从 URL 连续获取数据
    • 继续显示收集的这些数据
    • 关闭窗口

程序:

Python3
# Import essential libraries
import requests
import cv2
import numpy as np
import imutils
  
# Replace the below URL with your own. Make sure to add "/shot.jpg" at last.
url = "http://192.168.0.103:8080/shot.jpg"
  
# While loop to continuously fetching data from the Url
while True:
    img_resp = requests.get(url)
    img_arr = np.array(bytearray(img_resp.content), dtype=np.uint8)
    img = cv2.imdecode(img_arr, -1)
    img = imutils.resize(img, width=1000, height=1800)
    cv2.imshow("Android_cam", img)
  
    # Press Esc key to exit
    if cv2.waitKey(1) == 27:
        break
  
cv2.destroyAllWindows()


输出: