AI基础02-图片数据采集

        上篇文章我们学习了文本的数据采集,今天主要了解一下图片数据采集的方法。图片采集方法通常有网页采集和实时采集(传感器采集)两种。我们学习一下如何利用python 工具和笔记本计算机摄像头进行图片数据的实时采集。

1)cv2库简介

cv2 是OpenCV库的升级,它是一个跨平台的计算机视觉库,适用于实时视觉应用程序,支持Linux、Windows、Mac OS 等系统。

使用前安装:pip install opencv-python

导入:import cv2

2)图片采集相关的cv2库函数使用方法

 a、打开摄像头

‌cv2.VideoCapture()‌是OpenCV库中的一个类,主要用于视频的捕获和处理。它既可以用来从摄像头捕获实时视频,也可以从视频文件中读取帧。

cv2.VideoCapture(摄像头ID) #开启摄像头,并完成摄像头的初始化操作。

使用cv2.VideoCapture(0)可以打开默认的摄像头(通常是内置摄像头)。参数0表示使用第一个摄像头设备,如果有多个摄像头,可以通过更改参数索引来选择不同的摄像头。

b、检查摄像头是否被打开

cv2. VideoCapture.isOpened()方法,检查摄像头是否初始化成功的方过方法,如果成功返回True,否在返回False。举例如下:

cap = cv2.VideoCapture(0) #开启摄像头
if cap.isOpened():
    print("摄像头正常打开了!")
else:
    print("摄像头打开错误!")

c、捕获每一帧图片的方法

cv2. VideoCapture.read() 方法,它是捕获帧方法,能获取视频中的每一帧图像。

如:ret_flag,img_camera = cv2. VideoCapture.read()

其中ret_flag表示是否捕获成功,返回布尔值类型;img_camera 表示返回捕获的帧信息,即图像。如果没有获取帧信息,该值为空。

d、保存图片方法

cv2.imwrite(imfilename, img_camera)

经C步骤获取到的图像以名称imfilename来保存起来,可以指定文件路径

#照片保存路径
img_dir =  "D:\\dewi\\project2024\\myListPractice\\pythonProject1\\test_data\\caputure_pics\\"

filename = “001.jpg”

imfilename = img_dir + filename

cv2.imwrite(imfilename, img_camera)

e、关闭摄像头

cv2. VideoCapture.release()方法。当捕获帧或者摄像头使用结束后,需要释放该资源,即关闭摄像头。

3)举例通过笔记本摄像头获取一个图片

最基本参考代码如下:

import cv2

# 创建一个VideoCapture对象,参数0通常表示电脑的默认摄像头
cap = cv2.VideoCapture(0)

# 检查摄像头是否成功打开
if not cap.isOpened():
   
print("无法打开摄像头")
   
exit()

# 拍照,返回一个布尔值表示是否成功
ret, frame = cap.read()
img_dir = 
"D:\\dewi\\project2024\\myListPractice\\pythonProject1\\test_data\\caputure_pics\\"
file_name = img_dir + f"photo_001.jpg"
# 检查照片是否成功获取
if ret:
   
# 保存照片,文件名包含当前时间
    cv2.imwrite(file_name, frame)
   
print(f"照片已保存为 photo_001.jpg")
else:
   
print("拍照失败")

# 释放VideoCapture对象
cap.release()
cv2.destroyAllWindows()
#删除建立的所有窗口

4)进阶练习

假如在3)基础上,每张图片为避免名称重复需要假如时间戳。同时我们每10秒获取一帧图片,连续获取一个小时。参考如下:

import cv2  #cv2库时OpenCV 库的升级
import time

#照片保存路径
img_dir =  "D:\\dewi\\project2024\\myListPractice\\pythonProject1\\test_data\\caputure_pics\\"

cap = cv2.VideoCapture(0) #开启摄像头
if cap.isOpened():
   
print("摄像头正常打开了!")
else:
   
print("摄像头打开错误!")
# 构建文件名
for i in range(360): #获取次数360次,每10秒获取一张
    # 获取当前系统时间戳(秒)
    current_timestamp = time.time()

   
# 转换为本地时间
    current_time = time.localtime(current_timestamp)

   
# 格式化输出
    formatted_time = time.strftime("%Y-%m-%d_%H%M%S", current_time)

   
#每张照片命名方式
    #filename = f"pic_{formatted_time}.jpg"
   
filename = "photo_"+formatted_time + ".jpg"
   
img_name = img_dir + filename

    ret_flag,img_camera = cap.read() 
#捕捉图片
    cv2.imwrite(img_name,img_camera)  #保存图片
    print(f"保存了照片,命名为:{filename}")
    time.sleep(
10)

cap.release()  
#释放所有摄像头
cv2.destroyAllWindows()  #删除建立的所有窗口

每天进步一点点,继续加油!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英伟达GB300新宠:新型LPDDR5X SOCAMM内存

随着人工智能(AI)、机器学习(ML)和高性能计算(HPC)应用的快速发展,对于高效能、大容量且低延迟内存的需求日益增长。NVIDIA在其GB系列GPU中引入了不同的内存模块设计,以满足这些严格…

PC名词解释-笔记本的S0,S1,S2,S3,S4,S5状态

​🎓作者简介:程序员转项目管理领域优质创作者 💌个人邮箱:[2707492172qq.com] 🌐PMP资料导航:PM菜鸟(查阅PMP大纲考点) 💡座右铭:上善若水,水善利…

群体智能优化算法-算术优化算法(Arithmetic Optimization Algorithm, AOA,含Matlab源代码)

摘要 算术优化算法(Arithmetic Optimization Algorithm, AOA)是一种新颖的群体智能优化算法,灵感来源于加、减、乘、除四种基本算术运算。在优化过程中,AOA 通过乘除操作实现全局探索,通过加减操作强化局部开发&#…

Centos7安装cat美化工具lolcat

Centos7安装cat美化工具lolcat Centos7安装lolcat使用ruby安装lolcat配置cat系统别名 结果验证 Centos7安装lolcat lolcat :一个在Linux 终端中输出彩虹特效的命令行工具 使用ruby安装lolcat # 安装ruby和zip yum install -y ruby# 查看ruby版本 ruby --version# …

vue在线录音系统

说明: 用vue做一款录音系统 1.点击按钮,开始录制音频 2.录制过程中,可以暂停和停止录制 有时长显示 3.点击停止录制 可以保存音频,保存在本地 4.找到刚刚保存的音频路径,可以点击播放 ,需要显示音频总时…

参量编码LPC:原理分析与仿真实践

参量编码LPC:原理分析与仿真实践 在早期通信系统中,带宽资源有限,而波形编码要精确重现语音波形,这就需要较高的码率来传输大量数据,这在带宽不足的情况下就成了阻碍语音传输的大难题。随着通信技术不断进步&#xff…

猜猜我用的是哪个大模型?我的世界游戏界面简单的模拟效果

我的罗里吧嗦的,根据小朋友的要求,边听边写边输入的提示词: 请生成一段完整的在网页中用html5和javascript代码模拟“我的世界”中游戏场景的互动画面,要求提供若干人物选项可以选择,请自行选择需要使用哪些库或框架来…

el-radio-group 中 el-radio-button value未能绑定上数值数据

这样绑定到admin后不会随着admin的值显示 在value加上 : 后成功显示

Spring Cloud Gateway详细介绍简单案例

文章目录 1、Spring Cloud Gateway 详细介绍1.1. 统一入口(Single Entry Point)1.2. 请求路由(Request Routing)1.3. 负载均衡(Load Balancing)1.4. 流量控制(Rate Limiting)1.5. 身…

Msys2安装编译Redis

此处注意文件夹的权限问题,将文件夹的只读属性取消,否则在编译的时候会提示没有权限。首先,进入 msys2 所在目录的 usr/include/ 下,找到 dlfcn.h ,复制站贴做个备份。然后打开 dlfcn.h ,找到 Dl_info定义的…

SHELL 三剑客

grep awk sed grep grep通常和管道符|一起使用,对管道符前面数据进行对应处理 其命令参数包括 -v 过滤指定内容 -i 不区分大小写 -c 统计匹配行号 -n 带行号可以参考下图数据 awk awk 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切…

【云原生】docker 搭建单机PostgreSQL操作详解

目录 一、前言 二、前置准备 2.1 服务器环境 2.2 docker环境 三、docker安装PostgreSQL过程 3.1 获取PostgreSQL镜像 3.2 启动容器 3.2.1 创建数据卷目录 3.2.2 启动pg容器 3.3 客户端测试连接数据库 四、创建数据库与授权 4.1 进入PG容器 4.2 PG常用操作命令 4.2…

645.错误的集合

import java.util.HashMap; import java.util.Map;/*** program: Test* description: 645 错误的集合* author: gyf* create: 2025-03-23 10:22**/ public class Test {public static void main(String[] args) {}public static int[] findErrorNums(int[] nums) {int[] arr n…

向量数据库学习笔记(2) —— pgvector 用法 与 最佳实践

关于向量的基础概念,可以参考:向量数据库学习笔记(1) —— 基础概念-CSDN博客 一、 pgvector简介 pgvector 是一款开源的、基于pg的、向量相似性搜索 插件,将您的向量数据与其他数据统一存储在pg中。支持功能包括&…

Unity编辑器功能及拓展(3) —[Attribute]特性

在 Unity 中,[Attribute]格式的特性是用于扩展编辑器功能、控制序列化行为和调整 Inspector 显示,进行编辑器拓展的核心工具。 一.基础编辑器拓展 1.基础序列化控制 1.[SerializeField] 强制显示私有变量到Inspector 2.[HideInInspector] 隐藏该字段在Inspect…

探究 CSS 如何在HTML中工作

2025/3/28 向全栈工程师迈进&#xff01; 一、CSS的作用 简单一句话——美化网页 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 对于如上代码来说&#xff0c;其显示效果如下&#xff1…

【docker】docker-compose安装RabbitMQ

docker-compose安装RabbitMQ 1、配置docker-compose.yml文件&#xff08;docker容器里面的目录请勿修改&#xff09;2、启动mq3、访问mq4、查看服务器映射目录5、踩坑5.1、权限不足 1、配置docker-compose.yml文件&#xff08;docker容器里面的目录请勿修改&#xff09; versi…

小红书xhs逆向算法还原(202503月更新)

今天闲着没事再来看下小红书&#xff0c;发现好像过不去了&#xff0c;解开base64看看 {"signSvn":"56","signType":"x2","appId":"xhs-pc-web","signVersion":"1","payload":&qu…

全国产1U机架式交换机解决方案

规格参数 基本参数信息 基本信息 端口规格 32个10/100/1000Base-T RJ45接口&#xff0c;8个1G/10Gig SFP Console管理端口&#xff0c;RJ45&#xff0c;数量&#xff1a;1 支持1个USB接口&#xff0c;1个复位按键 外形尺寸 482 mm&#xff08;长&#xff09; 300mm &#…

【8】递归之经典题型总结

&#x1f4da;博客主页&#xff1a;代码探秘者 ✨专栏&#xff1a;《JavaSe》 其他更新ing… ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;作者水平有限&#xff0c;欢迎各位大佬指点&…