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中Random和Math模块学习笔记
May 18 Python
Python中字符串的格式化方法小结
May 03 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
python读取指定字节长度的文本方法
Aug 27 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
python实现定时发送邮件
Dec 23 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
基于empty函数的输出详解
2013/06/17 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
自动最大化窗口的Javascript代码
2013/05/22 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
python Django框架实现自定义表单提交
2016/03/25 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python3爬虫学习入门教程
2018/12/11 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
师范学院教师自荐书
2014/01/31 职场文书
协议书格式
2014/04/23 职场文书
情况说明书格式范文
2014/05/06 职场文书
幼师求职信
2014/06/23 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
寒暑假实习证明书模板
2014/11/29 职场文书
医院病假条怎么写
2015/08/17 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js