Python 获得摄像头捕捉的图像

Python 获得摄像头捕捉的图像

很多时候,我们都需要通过摄像头捕获图像,以便进行处理,在这里分享的是通过OPEN CV这个库来实现。

OPEN CV的安装和使用

安装很简单,相关文章也很多,注意一点,不要安装最新版本,要安装上一个大版本的最后一发行版本。
即,如果当前最新版本是4.6.xx,那么就安装4.5.xx的最新版本即可。否则很容易遇到各种问题。
如果安装后遇到代码提示功能不正常的话,请看这里:python pycharm中使用opencv时,没有代码自动补全提示

安装摄像头

首先要保证有一个可以正常使用的摄像头,并正确安装驱动。如下图:
在这里插入图片描述

测试摄像头是否正常工作

可以用AMCAP这个经典软件工具,也可以在这里下载:AMCAP下载
下图设置中,点一下“默认值”按钮,以恢复出厂设置状态,以免因为设置问题导致显示不正常。
在这里插入图片描述
下图设置中,很多摄像头必须选择MJPG,才能达到最高帧率。这一点需要与摄像头厂家沟通一下。
在这里插入图片描述

在Options菜单中,勾选第1项,即可查看摄像头画面。

在这里插入图片描述

如果正常显示如下图,那么可以确定摄像头能够正常工作。

在这里插入图片描述

代码编写

直接复制以下代码,即可正常显示。按Q键退出示例程序。

import cv2

class Camera:
    def __init__(self):
        self.cap = cv2.VideoCapture(0)  # 打开摄像头
        self.cap.set(3, 1120)  # 宽度960
        self.cap.set(4, 630)  # 高度540

    def get_img(self):
        if self.cap.isOpened():
            ret, img = self.cap.read()  # 读摄像头, 返回2个参数, 第1个是布尔值, 若图像正确则为真. 第2个是图像三维像素矩阵
            cv2.imshow('Camera picture', img)
            return img

    def free(self):
        self.cap.release()
        cv2.destroyAllWindows()


def camera_test():
    camera = Camera()
    while True:
        img = camera.get_img()
        if (cv2.waitKey(1) & 0xFF) == ord('q'):
            cv2.imwrite(".\\img\\test.jpg", img)
            break


if __name__ == '__main__':
    camera_test()

猜你喜欢

转载自blog.csdn.net/13011803189/article/details/128996909