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入门篇之列表和元组
Oct 17 Python
python中lambda与def用法对比实例分析
Apr 30 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
tensorflow多维张量计算实例
Feb 11 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
Python通过format函数格式化显示值
Oct 17 Python
Python爬虫之爬取某文库文档数据
Apr 21 Python
python必学知识之文件操作(建议收藏)
May 30 Python
pandas中对文本类型数据的处理小结
Nov 01 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 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
第十节--抽象方法和抽象类
2006/11/16 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
javascript StringBuilder类实现
2008/12/22 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
Python完全新手教程
2007/02/08 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
python实现图片彩色转化为素描
2019/01/15 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
Python datetime模块的使用示例
2021/02/02 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
新闻专业推荐信范文
2013/11/20 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
模范教师材料大全
2014/12/16 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
大学推普周活动总结
2015/05/07 职场文书
清洁工工作总结
2015/08/11 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android