python 计算积分图和haar特征的实例代码


Posted in Python onNovember 20, 2019

下面的代码通过积分图计算一张图片的一种haar特征的所有可能的值。初步学习图像处理并尝试写代码,如有错误,欢迎指出。

import cv2
import numpy as np
import matplotlib.pyplot as plt
#
#计算积分图
#
def integral(img):
  integ_graph = np.zeros((img.shape[0],img.shape[1]),dtype = np.int32)
  for x in range(img.shape[0]):
    sum_clo = 0
    for y in range(img.shape[1]):
      sum_clo = sum_clo + img[x][y]
      integ_graph[x][y] = integ_graph[x-1][y] + sum_clo;
  return integ_graph

# Types of Haar-like rectangle features
#  --- ---
# |  |  |
# | - | + |
# |  |  |
# --- ---
#
#就算所有需要计算haar特征的区域
#
def getHaarFeaturesArea(width,height):
  widthLimit = width-1
  heightLimit = height/2-1
  features = []
  for w in range(1,int(widthLimit)):
    for h in range(1,int(heightLimit)):
      wMoveLimit = width - w
      hMoveLimit = height - 2*h
      for x in range(0, wMoveLimit):
        for y in range(0, hMoveLimit):
          features.append([x, y, w, h])
  return features
#
#通过积分图特征区域计算haar特征
#
def calHaarFeatures(integral_graph,features_graph):
  haarFeatures = []
  for num in range(len(features_graph)):
    #计算左面的矩形区局的像素和
    haar1 = integral_graph[features_graph[num][0]][features_graph[num][1]]-\
    integral_graph[features_graph[num][0]+features_graph[num][2]][features_graph[num][1]] -\
    integral_graph[features_graph[num][0]][features_graph[num][1]+features_graph[num][3]] +\
    integral_graph[features_graph[num][0]+features_graph[num][2]][features_graph[num][1]+features_graph[num][3]]
    #计算右面的矩形区域的像素和
    haar2 = integral_graph[features_graph[num][0]][features_graph[num][1]+features_graph[num][3]]-\
    integral_graph[features_graph[num][0]+features_graph[num][2]][features_graph[num][1]+features_graph[num][3]] -\
    integral_graph[features_graph[num][0]][features_graph[num][1]+2*features_graph[num][3]] +\
    integral_graph[features_graph[num][0]+features_graph[num][2]][features_graph[num][1]+2*features_graph[num][3]]
    #右面的像素和减去左面的像素和
    haarFeatures.append(haar2-haar1)
  return haarFeatures


img = cv2.imread("faces/face00001.bmp",0)
integeralGraph = integral(img)
featureAreas = getHaarFeaturesArea(img.shape[0],img.shape[1])
haarFeatures = calHaarFeatures(integeralGraph,featureAreas)
print(haarFeatures)

以上这篇python 计算积分图和haar特征的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python list转dict示例分享
Jan 28 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
python爬虫使用cookie登录详解
Dec 27 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
Python如何把多个PDF文件合并代码实例
Feb 13 Python
Django URL参数Template反向解析
Nov 24 Python
Python 函数绘图及函数图像微分与积分
Nov 20 #Python
python抓取多种类型的页面方法实例
Nov 20 #Python
Python超越函数积分运算以及绘图实现代码
Nov 20 #Python
python自动化实现登录获取图片验证码功能
Nov 20 #Python
python通过链接抓取网站详解
Nov 20 #Python
python爬虫之遍历单个域名
Nov 20 #Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 #Python
You might like
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
pycharm中成功运行图片的配置教程
2018/10/28 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python3 下载网络图片代码实例
2019/08/27 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
2013年军训通讯稿
2014/02/05 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
课题研究阶段性总结
2015/08/13 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书