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使用matplotlib绘图无法显示中文问题的解决方法
Mar 14 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
Python 如何测试文件是否存在
Jul 31 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 Python
python开发实时可视化仪表盘的示例
May 07 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 Python
Python数据处理的三个实用技巧分享
Apr 01 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面向对象概念
2011/11/06 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
javascript 写类方式之九
2009/07/05 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
Vue中使用vux的配置详解
2017/05/05 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
vue获取当前激活路由的方法
2018/03/17 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python 数据结构之队列的实现
2017/01/22 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
python爬虫 正则表达式解析
2019/09/28 Python
python 自动识别并连接串口的实现
2021/01/19 Python
新教师培训方案
2014/06/08 职场文书
财务负责人岗位职责
2015/02/03 职场文书
金陵十三钗观后感
2015/06/04 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python