跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

使用 Python 和 OpenCV 远程访问手机摄像头

综述由AI生成通过局域网环境,利用安卓手机作为网络摄像头源,配合 Python 的 OpenCV 库在 PC 端接收视频流。代码实现了实时画面显示、自动旋转修正方向以及按键保存截图功能。需确保设备在同一网络下,并正确配置 IP 地址与端口。

星星泡饭发布于 2026/3/23更新于 2026/5/14 浏览
使用 Python 和 OpenCV 远程访问手机摄像头

使用 Python 和 OpenCV 远程访问手机摄像头

手机端准备

这里以安卓手机作为演示,iOS 系统操作逻辑类似。你需要先在手机上安装一款支持将摄像头画面推流到局域网的 App。

注意: 要想在电脑上查看手机摄像头拍摄的内容,电脑和手机必须处于同一个局域网内(没有 WiFi 可以使用热点)。

启动手机摄像头服务

安装完成后打开 App,进入 IP 摄像头服务器界面。点击分享或查看 IP 按钮,获取当前局域网下的 IP 地址和端口号。通常格式为 http://IP:端口。

PC 端环境搭建

我们需要使用 Python 的 OpenCV 库来连接这个网络视频流。

首先安装依赖库:

pip install opencv-python

如果下载速度较慢,建议使用国内镜像源加速,例如清华源:

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/

代码实现与说明

下面是一个完整的脚本示例。它负责连接手机 IP、读取视频流、处理按键事件以及保存截图。

import cv2
import os
from datetime import datetime

# 创建窗口,设置为允许调整大小
cv2.namedWindow('camera', cv2.WINDOW_NORMAL)

# 摄像头设置,这里使用的是网络摄像头的 URL
# 请将 IP 地址替换为你在手机端看到的实际地址
video = 'http://admin:[email protected]:8081'
capture = cv2.VideoCapture(video)

# 开始无限循环,直到用户中断
while True:
    success, img = capture.read()
    
    # 从摄像头读取一帧图像
    if not success:
        print("无法抓取帧")
        break
    
    # 将图像旋转 90 度以竖直显示
    # 实际场景中,手机横屏时画面可能也是横着的,需要旋转修正
    img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
    
    # 显示图像
    cv2.imshow("camera", img)
    
    # 等待用户按键,10 毫秒响应一次
    key = cv2.waitKey(10)
    
    # 按键处理逻辑
    if key == 27:  # ESC 键退出
        break
    elif key == ord(' '):  # 空格键保存图片
        # 保存图片到当前目录下的 img 文件夹中
        img_folder = 'img'
        if not os.path.exists(img_folder):
            os.makedirs(img_folder)
        
        # 使用时间戳作为文件名
        timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
        img_filename = f"{img_folder}/{timestamp}.jpg"
        
        cv2.imwrite(img_filename, img)
        print(f"Saved image {timestamp}.jpg")

# 释放摄像头资源
capture.release()
# 关闭所有 OpenCV 创建的窗口
cv2.destroyAllWindows()
关键点解析
  • 导入必要的库:cv2 用于图像处理,os 用于路径管理,datetime 用于生成文件名。
  • 创建窗口:WINDOW_NORMAL 允许你手动调整显示窗口的大小,方便观察细节。
  • 摄像头设置:VideoCapture 接收的是 HTTP 流地址。务必确保 IP 和端口正确,且防火墙未拦截相关端口。
  • 主循环与帧读取:capture.read() 会返回一个布尔值表示是否成功读取。如果失败(比如手机断网),直接跳出循环避免卡死。
  • 图像旋转:很多手机摄像头默认输出是横向的,而我们在 PC 上竖屏看比较习惯,所以加了 90 度旋转。如果方向不对,可以改成 ROTATE_90_COUNTERCLOCKWISE。
  • 按键处理:waitKey(10) 是关键,它让程序每 10 毫秒检查一次键盘输入。ESC 键(ASCII 27)退出,空格键触发保存逻辑。
  • 资源释放:程序结束前一定要调用 release() 和 destroyAllWindows(),否则可能导致摄像头被占用无法再次打开。

运行效果

在电脑端运行脚本后,会弹出一个名为 camera 的窗口,实时显示手机摄像头画面。按空格键会在同级目录的 img 文件夹下保存带时间戳的图片。如果分辨率较低导致画面模糊,这通常是手机 App 推流压缩导致的,属于正常现象。

目录

  1. 使用 Python 和 OpenCV 远程访问手机摄像头
  2. 手机端准备
  3. 启动手机摄像头服务
  4. PC 端环境搭建
  5. 代码实现与说明
  6. 创建窗口,设置为允许调整大小
  7. 摄像头设置,这里使用的是网络摄像头的 URL
  8. 请将 IP 地址替换为你在手机端看到的实际地址
  9. 开始无限循环,直到用户中断
  10. 释放摄像头资源
  11. 关闭所有 OpenCV 创建的窗口
  12. 关键点解析
  13. 运行效果
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 产品经理工作全流程与模型构建实战指南
  • 2025 年值得关注的 8 个主流 AI 开源大模型
  • SubtitleEdit Whisper XXL 引擎安装失败修复指南
  • jQuery 从入门到实战:前端高效开发指南
  • FLUX.1-dev FP8 完整部署教程:6GB 显存运行 AI 绘画
  • Visual C++ 运行库修复及软件闪退问题解决指南
  • Pi0 机器人 VLA 大模型昇腾 A2 平台部署与测评
  • WebCode 与 Clawdbot 深度对比:架构、生态与选型指南
  • AI 驱动代码审查与错误检测工具评测
  • Java 面向对象:this 关键字、构造方法与标准 JavaBean
  • Python 零基础入门学习指南与跨行经验分享
  • SecureCRT 下载与安装及基础配置指南
  • 世界模型发展脉络整理:理解世界或预测未来
  • AI 论文写作、查重与降重工具功能介绍
  • 树莓派 4B 连接大疆 M300 无人机开发教程
  • OpenClaw:AI 助手如何改写开源规则与开发模式
  • 基于 Python 大数据的协同过滤音乐推荐系统
  • Faster-Whisper 本地实时语音转文本部署指南
  • Git-AI:追踪 AI 生成代码的 Git 扩展工具
  • Spring 中 @Controller 与 @RestController 的区别详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online