📜  网络摄像头 cv2 - Python (1)

📅  最后修改于: 2023-12-03 14:57:03.591000             🧑  作者: Mango

网络摄像头 cv2 - Python

介绍

OpenCV是一个开源计算机视觉库,拥有各种各样的视觉算法和图像处理函数,如图像识别、人脸识别、目标跟踪等等。在这个库中, cv2 模块提供了处理图像和视频的函数。其中,cv2.VideoCapture() 函数可以从本地/远程摄像头中读取视频流,并使用 cv2.imshow() 函数在窗口中进行实时视频显示。

安装

在 Python 中,可以使用 pip 包管理器安装 OpenCV。

pip install opencv-python
代码示例
import cv2

# 创建一个 VideoCapture 对象,读取摄像头的视频流
cap = cv2.VideoCapture("http://192.168.0.123:8080/video")

# 设置窗口名称
cv2.namedWindow("Window")

# 循环读取摄像头视频流中的每一帧
while True:
    # 读取视频流中的每一帧
    ret, frame = cap.read()
    
    # 如果视频流正常读取,则显示每一帧
    if ret:
        # 显示每一帧图片
        cv2.imshow("Window", frame)
        
    # 等待 1 毫秒,根据键盘事件判断是否退出窗口
    if cv2.waitKey(1) == ord("q"):
        break

# 释放摄像头对象
cap.release()

# 关闭所有窗口
cv2.destroyAllWindows()

在上面的示例代码中,cv2.VideoCaptuer() 函数用于创建一个摄像头对象,参数 "http://192.168.0.123:8080/video" 是指本机或其他远程计算机的摄像头视频流。cv2.imshow() 函数用于在窗口中显示每一帧视频画面。cv2.waitKey() 函数用于等待键盘事件并返回按键的 ASCII 编码值,ord() 函数用于将字符转换成 ASCII 编码值。最后,cap.release() 函数用于释放摄像头对象,cv2.destroyAllWindows() 函数用于关闭所有窗口。

总结

通过 cv2 模块,在 Python 中处理图像和视频是非常简单的。除了读取摄像头视频流的示例,cv2 模块还提供了各种图像和视频的处理函数,如调整颜色、转换格式、处理形态学等等。建议深入研究 OpenCV,以获取更好的视觉算法和图像处理函数。