热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python获得摄像头捕捉的图像

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

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






推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在Python中使用getpass模块隐藏密码输入的方法,以保护用户的密码不被其他人员看到。同时还提到了在PyCharm中运行该命令无效的问题,需要在terminal中运行。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • Pylance有哪些特性
    这篇文章给大家分享的是有关Pylance有哪些特性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Pylance安装和其他VSC ... [详细]
author-avatar
mobiledu2502878137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有