【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·001 用OpenCV制作数据集
立即学习:https://edu.csdn.net/course/play/24719/279505?utm_source=blogtoedu
目录
一、制作数据集代码
二、思路总结
1、数据集目录的准备
2、图片的获取
3、样本的录入与样本类型的切换
4、数据集存放的方法
三、API使用总结
一、制作数据集代码
import cv2
import os"""数据集目录准备"""
dataset_path = "./dataset" # 数据集目录# 检验数据集目录是否存在,不存在则创建目录
if not os.path.exists(dataset_path):os.mkdir(dataset_path)# 在数据集路径下,检测3个类的路径是否存在,不存在则创建目录
for i in range(3):class_path = dataset_path + f"/{i}"if not os.path.exists(class_path):os.mkdir(class_path)"""图片编号准备"""
data_counter = 0 # 每一类图片的计数器
class_number = 0 # 图片类型编号"""摄像头取材准备"""
capture = cv2.VideoCapture(0)
while True:ret, frame = capture.read() # 获取一帧show_img = frame.copy() # show_img是原图像frame的拷贝crop_img = frame[100:200, 100:200] # crop_img是在原图像frame上的部分截取cv2.rectangle(show_img, (100, 100), (200, 200), (0, 0, 255), 5) # 在show_img上画出截取部分的框框cv2.imshow('frame', show_img) # 显示图片show_imgk = cv2.waitKey(1) # OpenCV延迟1毫秒、同时检测是否有按键被按下(如果有键被按下时,将键值返回给q)# 按下Q键退出if k == ord('q'):break# 按下S键保存elif k == ord('s'):file_name = dataset_path + f"/{class_number}" + "/%03d.jpg" % data_counter # 记录保存图片的相对路径cv2.imwrite(file_name, crop_img) # 保存图片crop_imgprint(f"保存 图片{data_counter}") # 打印提示data_counter += 1 # 计数器 + 1# 按下N键进入下一类样本的录入elif k == ord('n'):class_number += 1data_counter = 0print(f"进入第{class_number}类样本的识别")capture.release()
cv2.destroyAllWindows()
二、思路总结
1、数据集目录的准备
主要靠os来判断文件夹是否存在,不存在将提前创建相应文件夹
2、图片的获取
主要靠OpenCV打开摄像头,截取框选区域图片进行保存
3、样本的录入与样本类型的切换
主要靠OpenCV获取按键,判别按键信息执行对应指令
4、数据集存放的方法
在一个dataset的文件夹中,有三个文件夹【0、1、2】,分别对应三类图片数据【“我”、“好”、“帅”】,每一类图片存放在相应类型的文件夹下,各存储200张,编号均为000.jpg~199.jpg
三、API使用总结
API |
作用 |
使用示例 |
os.path.exists |
os判断某个文件/目录是否存在 |
dataset_path = "./dataset" if not os.path.exists(dataset_path): ...... |
os.mkdir |
os创建某个目录 |
os.mkdir(dataset_path) |
cv2.VideoCapture |
cv获取摄像头资源 |
capture = cv2.VideoCapture(0) |
*.read |
cv获取摄像头的一帧 |
ret, frame = capture.read() |
*.copy |
cv图片拷贝 |
show_img = frame.copy() |
*[???:???, ???:???] |
cv图片截取 |
crop_img = frame[100:200, 100:200] |
cv2.rectangle |
cv图片画框 |
cv2.rectangle(show_img, (100, 100), (200, 200), (0, 0, 255), 5) |
cv2.imshow |
cv图片展示 |
cv2.imshow('frame', show_img) |
cv2.imwrite |
cv图片保存 |
cv2.imwrite(file_name, crop_img) |
cv2.waitKey |
cv等待按键 |
k = cv2.waitKey(1) |
*.release |
cv释放摄像头资源 |
capture.release() |
cv2.destroyAllWindows |
关闭所有cv窗口 |
cv2.destroyAllWindows() |
ord |
返回字符对应的ASCII码值 |
if k == ord('q'): break |
【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·001 用OpenCV制作数据集相关推荐
- 【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·003 用训练模型进行预测
立即学习:https://edu.csdn.net/course/play/24719/279510?utm_source=blogtoedu 目录 一.用训练模型进行预测代码 二.思路总结 1.模型 ...
- 【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·002 训练神经网络
立即学习:https://edu.csdn.net/course/play/24719/279509?utm_source=blogtoedu 目录 一.神经网络训练代码 二.思路总结 1.数据集图片 ...
- 手把手带你入门深度学习(一):保姆级Anaconda和PyTorch环境配置指南
手把手带你入门深度学习(一):保姆级Anaconda和PyTorch环境配置指南 一. 前言和准备工作 1.1 python.anaconda和pytorch的关系 二. Anconda安装 2.1 ...
- linux 中国-新手村,从新手村开始,手把手带你入门梳理内核代码
原标题:从新手村开始,手把手带你入门梳理内核代码 在上一期内容中,Java离Linux内核有多远? 我们介绍了从 JVM 到内核的编译原理,告诉大家应用和系统工程师如何接触到内核. 本文将 从一个简单 ...
- RPA之家手把手带你入门Blue Prism教程系列4_认识Blue Prism的界面
RPA之家手把手带你入门Blue Prism 1. Home & Analytics 2. Studio 2.1 Process 2.2 Object 2.3 Process与Object的关 ...
- RPA之家手把手带你入门Blue Prism教程系列7_深入了解Data Item
RPA之家手把手带你入门Blue Prism 1. Data Item类型 2. Data Item的表现形式 2.1 Environment Variable(环境变量) 2.2 Session V ...
- RPA之家手把手带你入门Blue Prism教程系列 -汇总
RPA之家手把手带你入门Blue Prism 基础篇 -本文章由RPA之家(rpazj.com)提供, 学习交流群QQ群465620839 微信交流群: 基础篇 RPA之家手把手带你入门Blue Pr ...
- RPA之家手把手带你入门Blue Prism教程系列3_如何新建用户和配置数据库
RPA之家手把手带你入门Blue Prism 创建用户 第一步:寻找Security标签下的Users 第二步:配置Users 配置数据库 第一步:新建数据库 第二步:配置数据库 -本文章由RPA之家 ...
- RPA之家手把手带你入门Blue Prism教程系列1_如何申请Blue Prism免费试用版
RPA之家手把手带你入门Blue Prism Blue Prism 免费试用版 第一步:申请一个BluePrism Portal账号 第二步:在DX网站申请一个测试license 第三步:申请成功后, ...
最新文章
- 电大计算机应用,(2016年电大)电大全国计算机应用考试网考.doc
- UA MATH636 信息论7 高斯信道简介
- 用Flash创建一个类似Nano War游戏的教程
- 数据预处理|关于标准化和归一化的一切
- vue.config.js配置
- Information Retrieval --- Outline
- 湖北文理学院学位计算机考试,湖北文理学院学位计算机考试试题答案.doc
- 弃用微软 C++ 编译器,Win 版 Chrome 改用 Clang
- 蓝桥杯python试题_Python爬取蓝桥杯真题讲解课程
- 解析:深度学习框架Caffe源码
- WIFI 认证加密模式介绍 理解无线安全
- 服务器U盘安装安装centos
- 阿里云服务器ECS中扩容云盘后磁盘容量没有增加的解决方法
- 一个tesseract ocr box 文件查看toy,python
- 2021-05-01
- vmware虚拟机出现此电脑无法运行win11,虚拟机中安装win11系统教程
- powerpovit oracle,用powerpivot建立数据模型中的数据库在哪
- Kotlin基础学习(1)
- GB28181协议级联在公安多级网络应用的解决方法
- ndows 资源管理器,Xplorer2 Ultimate(Windows资源管理器高级版)v5.0.0.2 中文免费版-ucbug软件站...
热门文章
- 电力企业信息化建设方案之调度信息报送系统
- 有一列数列,1,11,21,1211,111221,.........,
- 中缀表达式转后缀表达式 java_中缀表达式转后缀表达式并计算结果Java实现
- linux做 tar,linux的tar命令
- c语言解三元一次方程组_在R里面对三元一次方程求解
- oracle配置控制文件快照的位置以及名称为,Oracle 快照控制文件(snapshot control file)...
- 力扣 27.移除元素 关于数组的存储是连续的问题
- 轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception
- 畅通工程(最小生成树模板)
- Puzzle——模拟