Python 获得摄像头捕捉的图像

news2024/11/13 14:45:57

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/342017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android视频号信息获取①】

*在2019年深圳上班的时候 那时候还是个Java 码农 接触了一下 Xposed.时隔多年 忘记差不多了 用frida先来练练手 新公司又让我研究微信视频号获取个人的视频主页标题列表 * 确定微信版本 不同版本微信hook点不一样。 预想实现方式 用Xposed去请求注册一个中转服务 然后脚本请…

Java——编辑距离

题目链接 leetcode在线oj题——编辑距离 题目描述 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 题目示例 输入:word…

搭建DJI 无人机Onboard SDK ROS开发环境及测试

搭建DJI 无人机Onboard SDK ROS开发环境及测试功能包简介开发环境搭建测试功能包连接设备启动SDK功能包简介 ROS功能包名称:dji_sdk 功能包功能:用于DJI 板载SDK的ROS版本 OSDK 是一个用于开发无人机应用程序的开发工具包,基于OSDK 开发的…

CUDA线程层次一文搞懂|参加CUDA线上训练营

设备术语 Host:CPU 和 内存 (host memory)Device:GPU 和显存 (device memory) CUDA 线程层次 CUDA 线程层次分为: Thread 所有线程执行相同的核函数并行执行 Thread Block 执行在一个 Streaming Multiprocessor (SM&#xff09…

Python快速上手系列--异常处理--详解篇

本章所说的就是我们经常遇到的一个问题,报错、异常。我们应该如何处理,让它不影响后面的程序运行。异常首先我们看看一个简单的示例。print(2/0)其结果可想而知,当然是报错了!程序被终止了!这里会提示用户,…

索引-性能分析-慢查询日志

索引语法 1、创建索引时候 [UNIQUE | FULLTEXT] 关键字是可选的; 1)加上 UNIUQE 就是创建唯一索引(唯一索引,说明改字段不能出现重复数据); 2)加上FULLTEXT 创建的是一个全文索引;…

Webpack5 环境下 Openlayers 标注(Icon) require 引入图片问题

Webpack5 环境下 Openlayers 标注(Icon) require 引入图片问题环境版本Openlayers 使用 require 问题Webpack5 正确配置构建新环境的时候,偶然发现 Openlayers 使用 require 的方式加载图片(Icon)报错,开始…

电子技术——DC偏移

电子技术——DC偏移 因为差分放大器是直接耦合的并且对于DC有着有限的增益,因此本节我们讨论差分放大器在DC相关方面的问题。 MOS差分放大器的输入偏移电压 考虑下面的电路,我们将MOS差分放大器的输入端都置地: 此时假如电路完全对称&#…

IP地址:揭晓安欣警官自证清白的黑科技

《狂飙》这部电视剧,此从播出以来可谓是火爆了,想必大家都是看过的。剧中,主人公“安欣”是一名警察。一直在与犯罪分子做斗争。 莽村的李顺案中,有匿名者这个案件在网上发帖恶意造谣,说安欣是黑恶势力的保护伞&#…

将视频作为桌面动态壁纸,只需要两步,让你保存的视频在桌面动起来,动态壁纸工具,视频动态壁纸,小风车,桌面美化工具

这款软件可以让你宝贵的视频资源变成动态壁纸显示在你的电脑上,体积小巧,不需要安装,即点即用。 一、软件简介 这是一款可以将视频文件作为动态壁纸展示在电脑桌面的软件,它体积小巧,占用资源也不多,相比…

SpringMVC基础入门(一)之理论基础概念

文章目录SpringMVC1.概念2.常用注解请求与响应1.请求参数2.JSON传输3.常用注解响应1.响应页面2.响应JSON数据Rest风格1.介绍2.常用注解SpringMVC 1.概念 (1)定义 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架。 (2)为什…

test2

物理层故障分析 一、传输介质故障 a.主要用途简述 传输介质主要分为 导向传输介质和非导向传输介质。前者包括双绞线(两根铜线并排绞合,距离过远会失真)、同轴电缆(铜质芯线屏蔽层,抗干扰性强,传输距离更…

VScode查看python f.write()的文件乱码

VScode查看python f.write()的文件乱码 在使用 VScode 编写 python 代码, print(),汉字正常显示, 使用 with open()as f: f.write()文件后, 在 …

【Java】HashMap原理

哈希表(Hash table) 也叫散列表,是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快…

nvm安装后出现‘node‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

出现这个问题多半是path地址不对。 打开系统环境变量。看看path里面有没有?没有的话,加上就行! 我的报错原因就是因为path里没有自动加上nvm的相关路径。 注意项: 1,在安装nvm之前,提前要把本机以前安装…

剑指 Offer 32 - II. 从上到下打印二叉树 II(java解题)

剑指 Offer 32 - II. 从上到下打印二叉树 II(java解题)1. 题目2. 解题思路3. 数据类型功能函数总结4. java代码5. 踩坑记录1. 题目 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉…

2023年开始,为什么公司运营依赖于流程文档?

当您的业务扩展时,您会得到越来越多的活动部件,跟踪复杂性是某人的工作。人员和任务需要以最有成效的方式组织,您必须找到某种方式让员工知道如何执行有效完成工作所需的流程。为了使过程可重复,需要将其记录在案。有人需要写下你…

关于conda env导出yaml无法create的问题解决

在使用conda env 命令创建package 列表之后,无法用yml文件创建新的环境。 这是因为在环境导出的时候没有加--no-builds 这个选项。 conda env export 正确的导出环境的做法如下: conda env export --no-builds > environment.yml--no-builds 的作用…

(C语言)自定义类型,枚举与联合

问:1. 结构体在自引用的时候不能怎么样?可以怎么样?2. Solve the problems:自定义一个学生结构体类型,要包含姓名,性别,年龄,六科成绩,家乡(也为结构体&#…

服务器开发29:Kubernetes (K8S)上手简单实践(2/13)

文章目录一、Kubernetes (K8S) 简介1)简介2)主要特性:3)学习前提4)不同部署方案5)为什么需要K8S6)K8S集群架构7)Kubernetes 组件二、安装k8s集群1)安装方式介绍2&#xf…