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 相关文章推荐
详解Django之admin组件的使用和源码剖析
May 04 Python
Python应用库大全总结
May 30 Python
Python实现的txt文件去重功能示例
Jul 07 Python
python导入pandas具体步骤方法
Jun 23 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
django model object序列化实例
Mar 13 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
基于Python正确读取资源文件
Sep 14 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
Python+Appium自动化测试的实战
Jun 30 Python
Python实现将多张图片合成MP4视频并加入背景音乐
Apr 28 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
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
smarty简单分页的实现方法
2014/10/27 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中的并发编程实例
2014/07/07 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
使用pip安装python库的多种方式
2019/07/31 Python
python datetime中strptime用法详解
2019/08/29 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
python 类之间的参数传递方式
2019/12/20 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
个人求职信范文分享
2014/01/06 职场文书
村干部培训班主持词
2014/03/28 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
服务之星事迹材料
2014/05/03 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
Python 如何安装Selenium
2021/05/06 Python
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
Python 中面向接口编程
2022/05/20 Python