opencv实时识别指定物体
一. 引入
二. 环境:
三. 训练自己的分类器
- String path = "C:\\Users\\Administrator\\Desktop\\pos\\";
- File f = new File(path);
- File[] files = f.listFiles();
- for (File file : files) {
- i++;
- file.renameTo(new File(path+i+"."+file.getName().split("\\.")[1]));
- }
4. 生成样本资源记录文件:
- String path = "E:\\tools\\python\\eclipse\\work\\pythonTest\\demo\\0202\\img\\train\\tongue\\pos\\";
- File txtfile = new File(path+"pos.txt");
- FileOutputStream fos = new FileOutputStream(txtfile);
- PrintWriter pw = new PrintWriter(fos,true);
- String s = "";
- File[] files = new File(path).listFiles();
- for (File file : files) {
- pw.println("pos/"+file.getName()+" 1 0 0 40 40");
- }
生成后删除最后一行的带有(pos.txt)的内容,让正样本资源记录文件内容如下类似所示:
- String path = "E:\\tools\\python\\eclipse\\work\\pythonTest\\demo\\0202\\img\\train\\tongue\\neg\\";
- File txtfile = new File(path+"neg.txt");
- FileOutputStream fos = new FileOutputStream(txtfile);
- PrintWriter pw = new PrintWriter(fos,true);
- String s = "";
- File[] files = new File(path).listFiles();
- for (File file : files) {
- pw.println("neg/"+file.getName());
- }
生成后删除最后一行的带有(neg.txt)的内容,让负样本资源记录文件内容如下类似所示:
- opencv_createsamples.exe -vec pos.vec -info pos.txt -num 25 -w 40 -h 40
- pause
- opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 25 -numNeg 666 -numStages 10 -w 40 -h 40 -minHitRate 0.999 -maxFalseAlarmRate 0.2 -weightTrimRate 0.95 -featureType LBP
- pause
说明: 25是正样本图片的数量 666是负样本图片的数量 numNeg是层级数 40 40是训练样本的宽高 .....
四 . 测试训练好的分类器
- '''''
- Created on 2018年2月2日
- 实时人脸检测
- @author: nuohy
- '''
- import cv2
- # 加载opencv自带的人脸分类器
- # faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")
- # faceCascade.load('E:/python/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml')
- faceCascade = cv2.CascadeClassifier("cascade.xml")
- faceCascade.load('E:/tools/python/eclipse/work/pythonTest/demo/0202/img/train/tongue/xml/cascade.xml')
- cap = cv2.VideoCapture(0)
- flag = 0
- timeF = 10
- while True:
- flag+=1
- ret, frame = cap.read()
- img = frame.copy()
- gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
- rect = faceCascade.detectMultiScale(
- gray,
- scaleFactor=1.15,
- minNeighbors=3,
- minSize=(3,3),
- flags = cv2.IMREAD_GRAYSCALE
- )
- for (x, y, w, h) in rect:
- cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
- #识别到物体后进行裁剪保存
- #jiequ = img[x:(x+w), y:(y+h)]
- #cv2.imwrite('E://tools//python//eclipse//work//pythonTest//demo//0202//img//save//'+str(flag) + '.jpg',jiequ) #save as jpg
- #读取到保存图片
- # if(flag%timeF==0):
- # cv2.imwrite('E://tools//python//eclipse//work//pythonTest//demo//0202//img//save//'+str(flag) + '.jpg',frame) #save as jpg
- cv2.imshow('frame', frame)
- if cv2.waitKey(1) & 0xFF == ord('q'):
- break
- cap.release()
- cv2.destroyAllWindows()
opencv实时识别指定物体相关推荐
- opencv人脸识别以及自定义物体识别系统
目录 一.简介: 二.软硬件应用: 三.模块介绍: (一)人脸识别: (二).自定义物体识别: (三).图片展示: (四).python框架: (五).执行器--单片机: 四.效果展示: 五.总结 : ...
- opencv+python+OpenPose姿态实时识别
opencv+python+OpenPose 姿态实时识别 1.姿态识别 标记 颈.肩.肘.腕.腰.膝.踝 等特征点进行姿态识别,这些关节都有一定程度的自由度. 2.OPenPose OpenPose ...
- opencv 识别黄色物体的程序代码
识别黄色物体的完整程序代码 import cv2 cap = cv2.VideoCapture(0) #开始读取摄像头信号 while cap.isOpened(): #当读取 ...
- 【UE4教程】Unreal 4.22 UI显示指定物体-实时渲染
UE4教程 UI显示指定物体-实时渲染 介绍一下实时渲染,对指定物体显示到UI上面的教程 效果图 教程部分 创建第三人称模板 添加渲染摄像机组件(可以添加在场景中,也可以添加在人物蓝图内)组件1 组件 ...
- C++ 纯 OpenCV 实现扑克牌实时识别
C++ 纯 OpenCV 实现扑克牌实时识别 网上有很多用OpenCV或其他工具实现扑克牌或者简单的数字识别demo,但都讲的不够简洁清晰或者提供的代码太混乱,所以我自己用OpenCV实现了一下这个d ...
- 数字图像处理二维码识别 python+opencv实现二维码实时识别
数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码: (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维 ...
- python摄像头识别二维码_python使用pyzbar+opencv实现实时识别二维码--李渣渣(lizaza.cn)...
写东西就要写全面,前两天写了如何用python生成二维码,今天博主就给大家介绍一个识别二维码的方法. 1.安装本次开发所需要的库opencv 和pyzbar pip install pyzbar pi ...
- python人脸照片分类_Python OpenCV 人脸识别(一)
前面介绍了Numpy模块,下面再介绍一个OpenCV模块,就基于这两个库看一下当下很火的人工智能是如何实现的,我们介绍几个:人脸识别(当下非常火的).音视频操作等等.今天先介绍一下静态图片的人脸识别, ...
- 基于python opencv人脸识别的签到系统
基于python opencv人脸识别的签到系统 前言 先看下效果 实现的功能 开始准备 页面的构建 功能实现 代码部分 总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人 ...
最新文章
- ios中的自动释放池
- 刮奖的实现;(刮开上层图层蒙版,露出底部的视图)
- linux vim卸载安装包_Linux下卸载安装mysql
- 【数据字典】国标数据字典
- ftp 追加远程文件_远程办公彻底火了,高效办公,拒绝卡顿,远程利器你选对了么?...
- Android学习--还有一些小技巧
- 【Angular专题】——(2)【译】Angular中的ForwardRef
- 牛逼!java反射创建类实例的三种方式
- C++之unique_ptr
- Firefox的下载处理器:FlashGot v1.0 Final颁发
- 粗谈全息投影与裸眼3D
- web期末复习---老师划重点!!
- BLUES吉他学习笔记004 bluesrv[8]
- 成功解决ThinkPad T14 高负载下CPU降频问题
- 数值分析-题目3-龙贝格和高斯求解牛顿迭代节点
- diyUpload - jQuery多张图片批量上传插件
- 银河麒麟服务器系统ip可ping通,但是tongweb的默认端口9060、8088不能访问,访问提示404
- Trojan客户端使用教程
- Linux定时清除缓存脚本与清除命令
- grafana+alertmanager实现微信报警