欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > opencv-python连接计算机摄像头,连接手机摄像头

opencv-python连接计算机摄像头,连接手机摄像头

2025/2/23 1:24:00 来源:https://blog.csdn.net/2301_81791289/article/details/144433377  浏览:    关键词:opencv-python连接计算机摄像头,连接手机摄像头

前言

提醒:
文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。
其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。

文章目录

  • 前言
  • 环境搭建
  • 读取文件夹中图片并显示
  • 打开计算机默认摄像头
  • 查看摄像机的基本参数
    • 查看计算机摄像头是否具有自动聚焦功能
    • 打开摄像头并启用自动对焦
  • 使用手机软件 “IP摄像头”,进行连接


环境搭建

可参考以下案例进行环境安装
Python+OpenCV 调用手机摄像头并实现人脸识别
在这里插入图片描述

读取文件夹中图片并显示

import cv2# 图片的路径(同一文件夹)
image_path = 'test.jpg'# 使用 OpenCV 读取图片
image = cv2.imread(image_path)# 检查图片是否正确读取
if image is None:print(f"无法读取图片: {image_path}")
else:# 显示图片cv2.imshow('Image', image)# 等待用户按键后关闭窗口cv2.waitKey(0)cv2.destroyAllWindows()

在这里插入图片描述

打开计算机默认摄像头

import cv2def main():# 打开默认摄像头cap = cv2.VideoCapture(0)if not cap.isOpened():print("无法打开摄像头")returntry:while True:# 读取一帧视频ret, frame = cap.read()if not ret:print("无法接收帧,退出...")break# 显示帧cv2.imshow('Camera', frame)# 按 'q' 键退出if cv2.waitKey(1) & 0xFF == ord('q'):breakfinally:# 释放摄像头cap.release()# 关闭所有OpenCV窗口cv2.destroyAllWindows()if __name__ == "__main__":main()

在这里插入图片描述

查看摄像机的基本参数

import cv2
def print_camera_parameters(cap):# 打印摄像头的一些常见参数print("帧宽度: ", cap.get(cv2.CAP_PROP_FRAME_WIDTH))print("帧高度: ", cap.get(cv2.CAP_PROP_FRAME_HEIGHT))print("FPS (帧率): ", cap.get(cv2.CAP_PROP_FPS))print("曝光时间: ", cap.get(cv2.CAP_PROP_EXPOSURE))print("自动曝光: ", cap.get(cv2.CAP_PROP_AUTO_EXPOSURE))print("自动对焦是否开启: ", cap.get(cv2.CAP_PROP_AUTOFOCUS))# 可以根据需要添加更多参数def main():# 打开默认摄像头cap = cv2.VideoCapture(0)if not cap.isOpened():print("无法打开摄像头")return# 打印摄像头参数print_camera_parameters(cap)# 释放摄像头cap.release()if __name__ == "__main__":main()

在这里插入图片描述

查看计算机摄像头是否具有自动聚焦功能

import cv2cap = cv2.VideoCapture(0)if not cap.isOpened():print("无法打开摄像头")
else:# 尝试设置自动对焦success = cap.set(cv2.CAP_PROP_AUTOFOCUS, 1)if success:print("摄像头可能具有对焦功能")else:print("摄像头可能没有对焦功能或无法通过软件控制")# 释放摄像头cap.release()

打开摄像头并启用自动对焦

import cv2def set_auto_focus(cap, enable=True):# 尝试设置自动对焦# 注意:这个方法依赖于摄像头的驱动和DirectShow的支持,可能不适用于所有摄像头try:# 使用CAP_PROP_AUTOFOCUS属性来启用或禁用自动对焦# 1表示启用,0表示禁用cap.set(cv2.CAP_PROP_AUTOFOCUS, 1 if enable else 0)except Exception as e:print(f"无法设置自动对焦: {e}")def main():# 打开默认摄像头cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)  # 使用DirectShow后端if not cap.isOpened():print("无法打开摄像头")return# 尝试启用自动对焦set_auto_focus(cap, enable=True)try:while True:# 读取一帧视频ret, frame = cap.read()if not ret:print("无法接收帧,退出...")break# 显示帧cv2.imshow('Camera', frame)# 按 'q' 键退出if cv2.waitKey(1) & 0xFF == ord('q'):breakfinally:# 释放摄像头cap.release()# 关闭所有OpenCV窗口cv2.destroyAllWindows()if __name__ == "__main__":main()

使用手机软件 “IP摄像头”,进行连接

可参考以下案例进行环境安装
Python+OpenCV 调用手机摄像头并实现人脸识别

# coding=utf-8
import cv2if __name__ == '__main__':# 开启ip摄像头cv2.namedWindow("camera", 1)# 这个地址就是下面记下来的局域网IPvideo = "http://admin:admin@10.19.122.218:8081/"  # 此处@后的ipv4 地址需要修改为自己的地址cap = cv2.VideoCapture(video)# 检查手机相机是否打开成功if  not cap.isOpened():print("camera open failed!")exit()try:while True:# 读取一帧视频ret, frame = cap.read()if not ret:print("无法接收帧,退出...")break# 显示帧cv2.imshow('Camera', frame)# 按 'q' 键退出if cv2.waitKey(1) & 0xFF == ord('q'):breakfinally:# 释放摄像头cap.release()# 关闭所有OpenCV窗口cv2.destroyAllWindows()

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词