OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习上
目录
主要内容
harr特征
6-2 视频分解图片
6-3 图片合成视频
6-4 Haar特征1
6-7 adaboost分类器1
主要内容
可以通过视频分解图片的方式生成样本
Harr人脸识别
harr特征
遍历时harr特征用时很大
可以通过积分图提速
# 1 样本 2 特征 3 分类器 4 预测 检验
# haar+adaboost -》face
# haar 模版 adaboost 三级 (强分类器 弱分类器 node)
# hog 模版 svm 小狮子识别
6-2 视频分解图片
# 视频分解图片
# 1 load 2 info 3 parse 4 imshow imwrite
import cv2
cap = cv2.VideoCapture("1.mp4")# 获取一个视频打开cap 1 file name
isOpened = cap.isOpened# 判断是否打开‘
print(isOpened)
fps = cap.get(cv2.CAP_PROP_FPS)#帧率
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))#w h
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(fps,width,height)
i = 0
while(isOpened):if i == 10:breakelse:i = i+1(flag,frame) = cap.read()# 读取每一张 flag frame fileName = 'image'+str(i)+'.jpg'print(fileName)if flag == True:cv2.imwrite( '../images/' + fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100]) //保存到特定目录
# cv2.imwrite(fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100])print('end!')
6-3 图片合成视频
import cv2
img = cv2.imread('image1.jpg')
imgInfo = img.shape
size = (imgInfo[1],imgInfo[0])
print(size)
videoWrite = cv2.VideoWriter('2.mp4',-1,5,size)# 写入对象 1 file name
# 2 编码器 3 帧率 4 size
for i in range(1,11):fileName = 'image'+str(i)+'.jpg'img = cv2.imread(fileName)videoWrite.write(img)# 写入方法 1 jpg data
print('end!')
6-4 Haar特征1
#haar 1 什么是haar?特征 = 像素 运算 -》结果 (具体值 向量 矩阵 多维)
# 2 如何利用特征 区分目标? 阈值判决
# 3 得到判决?机器学习
# 1 特征 2 判决 3 得到判决
# 公式推导 1 -2
# 特征 = 整个区域*权重1 + 黑色*权重2 = (黑+白)*1+黑*(-2)=
# = 黑+白-2黑 = 白-黑# 1 haar模版 上下 左右 image size 模版 size 100*100 10*10 100次 step = 10
# 1 100*100 2 10*10 3 step 10 4 模版1
# 模版 滑动 缩放 10*10 11*11 20级# 举例 1080*720 step2 10*10
# 计算量 = 14模版*20缩放*(1080/2*720/2)*(100点+- ) = 50-100亿
# (50-100)*15 = 1000亿次# A 1 B 1 2 C 1 3 D 1 2 3 4
# 4 = A-B-C+D = 1+1+2+3+4 - 1 -2 - 1 -3 = 4 (3+-)
6-7 adaboost分类器1
#adaboost 训练
# 1 初始化数据权值分布
# 苹果 苹果 苹果 香蕉
# 0.1 0.1 0.1 0.1
# 2 遍历阈值 p
# minP t
# 3 G1(x)
# 4 权值分布 update
# 0.2 0.2 0.2 0.7
## 训练终止条件:1 for count 2 p
#haar + adaboost face
# 苹果 苹果 苹果 香蕉
# 0.1 0.1 0.1 0.5
# 训练终止条件:1 for count 2 p
# 1 分类器的结构 2 adaboost 计算过程 3 xml 文件结构
# haar> T1 and haar>T2 2个强分类器15-20# 1 分类器的结构
# 3个强分类器 1 x1 t1 2 x2 t2 3 x3 t3
# x1>t1 and x2>t2 and x3>t3 目标-》苹果
# 作用:判决
# 弱分类器结构
# 作用:计算强分类器特征x1 x2 x3
# x2 = sum(y1,y2,y3)# y1 弱分类器特征
# node
# 3个haar-》 node
# 1node haar1 > nodeT1 z1 = a1
# 1node haar1 < nodeT1 z1 = a2
# Z = sum(z1,z2,z3)>T y1 = AA
# Z = sum(z1,z2,z3)<T y1 = BB# haar->Node z1 z2 z3 Z=sum(z1,z2,z3)
# Z>T y1 y2 y3
# x = sum(y1,y2,y3) > T1 obj
# 1 load xml 2 load jpg 3 haar gray 4 detect 5 draw
import cv2
import numpy as np
# load xml 1 file name
face_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')
# load jpg
# img = cv2.imread('face.jpg')
img = cv2.imread('PR.jpg')
# img = cv2.imread('TP.jpg')cv2.imshow('src',img)
# haar gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# detect faces 1 data 2 scale 3 5
faces = face_xml.detectMultiScale(gray,1.3,5)
print('face=',len(faces))
# draw
for (x,y,w,h) in faces:cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)roi_face = gray[y:y+h,x:x+w]roi_color = img[y:y+h,x:x+w]# 1 grayeyes = eye_xml.detectMultiScale(roi_face)print('eye=',len(eyes))for (e_x,e_y,e_w,e_h) in eyes:cv2.rectangle(roi_color,(e_x,e_y),(e_x+e_w,e_y+e_h),(0,255,0),2)
cv2.imshow('dst',img)
cv2.waitKey(0)
脸和眼的xml文件 https://download.csdn.net/download/moonlightpeng/13494251
OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习上相关推荐
- 人工智能导论学习笔记02
人工智能导论学习笔记02--第二章 :人工智能哲学基础 人工智能导论学习笔记 人工智能导论学习笔记02--第二章 :人工智能哲学基础 第一讲 大历史观下的人工智能 宇宙演化 人类与生命进化 机器进化 ...
- Machine Learning with Python Cookbook 学习笔记 第8章
Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...
- OpenCV之Python学习笔记
RSS订阅 登陆 注册 原文链接地址:http://www.itozi.net/19477.html OpenCV之Python学习笔记 ITOZI 发布于 2015-08-06 分类:OpenSta ...
- 数字图像处理学习笔记 六 彩色图像处理
目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...
- 图像处理学习笔记(二)
图像处理学习笔记(二) 4 OpenCV图像处理: 4.2 形态学操作: 4.2.1 连通性: 4.2.1 腐蚀和膨胀: 4.2.2 开闭运算: 4.2.3 礼帽和黑帽: 4.2.4 形态学操作总结: ...
- OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...
- 《Go语言圣经》学习笔记 第五章函数
<Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...
- 数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF
数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF 一.概述 参考:特征点匹配+特征检测方法汇总 ORB的全称是Oriented ...
- OpenCV与图像处理学习十二——图像形状特征之HOG特征
OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...
- OpenCV与图像处理学习八——图像边缘提取(Canny检测代码)
OpenCV与图像处理学习八--图像边缘提取(Canny检测代码) 一.图像梯度 1.1 梯度 1.2 图像梯度 二.梯度图与梯度算子 2.1模板卷积 2.2 梯度图 2.3 梯度算子 2.3.1 R ...
最新文章
- 关于SQL的基础知识点
- biztalk adapter for mysql_BizTalk Schedule Adapter的使用
- php ci oracle,CI连接Oracle 11G数据库
- android播放mp3方法,Android之MediaPlayer播放音频与视频
- mysql开机启动脚本_centos简单的mysql开机自启和自动保存脚本
- django学习第77天Django框架ORM
- Pessimistic Error Pruning example of C4.5
- 【PHP】xampp配置多个监听端口和不同的网站目录(转)
- pytorch中深度拷贝_pytorch:对比clone、detach以及copy_等张量复制操作
- 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet
- 从零基础入门Tensorflow2.0 ----八、41. estimator分布式实战
- C语言编程轰炸,利用C语言编写一个数字炸弹小游戏
- python3d立体相册代码_Python 30 行代码画各种 3D 图形
- 美化复选框html,使用CSS3美化复选框checkbox
- NIVIDIA 硬解码学习2
- 读《解忧杂货店》有感
- 双字节字符c语言,双字节字符 是什么意思
- 数据仓库和数据挖掘方面比较好的书籍
- ne_comment 表
- HUANAN-X99-QD4 E5 2698V3 笔记本电脑 Hackintosh 黑苹果efi引导文件
热门文章
- 安卓一个奇怪的LOG:ColorDrawable.setColor
- 具体化和实例化的应用
- c++ primer plus 对象和类
- c语言文件读入到链表函数fscanf,【求解答】c关于把文件数据放进链表,并将链表遍历...
- java setmodal 不管用_java – 无法动态设置setVisibility()参数
- python可迭代对象 迭代器生成器_第八章 Python可迭代对象、迭代器和生成器-阿里云开发者社区...
- python中pickle模块无法导入_python pickle模块
- centos安装libconfig
- ThinkPHP/---微信支付PC流程
- Educational Codeforces Round 43 (Rated for Div. 2)题解