目录

主要内容

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章 计算机视觉加强之机器学习上相关推荐

  1. 人工智能导论学习笔记02

    人工智能导论学习笔记02--第二章 :人工智能哲学基础 人工智能导论学习笔记 人工智能导论学习笔记02--第二章 :人工智能哲学基础 第一讲 大历史观下的人工智能 宇宙演化 人类与生命进化 机器进化 ...

  2. Machine Learning with Python Cookbook 学习笔记 第8章

    Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...

  3. OpenCV之Python学习笔记

    RSS订阅 登陆 注册 原文链接地址:http://www.itozi.net/19477.html OpenCV之Python学习笔记 ITOZI 发布于 2015-08-06 分类:OpenSta ...

  4. 数字图像处理学习笔记 六 彩色图像处理

    目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...

  5. 图像处理学习笔记(二)

    图像处理学习笔记(二) 4 OpenCV图像处理: 4.2 形态学操作: 4.2.1 连通性: 4.2.1 腐蚀和膨胀: 4.2.2 开闭运算: 4.2.3 礼帽和黑帽: 4.2.4 形态学操作总结: ...

  6. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  7. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

  8. 数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF

    数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF 一.概述 参考:特征点匹配+特征检测方法汇总 ORB的全称是Oriented ...

  9. OpenCV与图像处理学习十二——图像形状特征之HOG特征

    OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...

  10. OpenCV与图像处理学习八——图像边缘提取(Canny检测代码)

    OpenCV与图像处理学习八--图像边缘提取(Canny检测代码) 一.图像梯度 1.1 梯度 1.2 图像梯度 二.梯度图与梯度算子 2.1模板卷积 2.2 梯度图 2.3 梯度算子 2.3.1 R ...

最新文章

  1. 关于SQL的基础知识点
  2. biztalk adapter for mysql_BizTalk Schedule Adapter的使用
  3. php ci oracle,CI连接Oracle 11G数据库
  4. android播放mp3方法,Android之MediaPlayer播放音频与视频
  5. mysql开机启动脚本_centos简单的mysql开机自启和自动保存脚本
  6. django学习第77天Django框架ORM
  7. Pessimistic Error Pruning example of C4.5
  8. 【PHP】xampp配置多个监听端口和不同的网站目录(转)
  9. pytorch中深度拷贝_pytorch:对比clone、detach以及copy_等张量复制操作
  10. 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet
  11. 从零基础入门Tensorflow2.0 ----八、41. estimator分布式实战
  12. C语言编程轰炸,利用C语言编写一个数字炸弹小游戏
  13. python3d立体相册代码_Python 30 行代码画各种 3D 图形
  14. 美化复选框html,使用CSS3美化复选框checkbox
  15. NIVIDIA 硬解码学习2
  16. 读《解忧杂货店》有感
  17. 双字节字符c语言,双字节字符 是什么意思
  18. 数据仓库和数据挖掘方面比较好的书籍
  19. ne_comment 表
  20. HUANAN-X99-QD4 E5 2698V3 笔记本电脑 Hackintosh 黑苹果efi引导文件

热门文章

  1. 安卓一个奇怪的LOG:ColorDrawable.setColor
  2. 具体化和实例化的应用
  3. c++ primer plus 对象和类
  4. c语言文件读入到链表函数fscanf,【求解答】c关于把文件数据放进链表,并将链表遍历...
  5. java setmodal 不管用_java – 无法动态设置setVisibility()参数
  6. python可迭代对象 迭代器生成器_第八章 Python可迭代对象、迭代器和生成器-阿里云开发者社区...
  7. python中pickle模块无法导入_python pickle模块
  8. centos安装libconfig
  9. ThinkPHP/---微信支付PC流程
  10. Educational Codeforces Round 43 (Rated for Div. 2)题解