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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python检查指定文件是否存在的方法
Jul 06 Python
Python 内置函数complex详解
Oct 23 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
python从Oracle读取数据生成图表
Oct 14 Python
python给list排序的简单方法
Dec 10 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
解决numpy数组互换两行及赋值的问题
Apr 17 Python
tensorflow+k-means聚类简单实现猫狗图像分类的方法
Apr 28 Python
pytorch 实现多个Dataloader同时训练
May 29 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
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
js实现文字截断功能
2016/09/14 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
Python装饰器用法实例总结
2018/05/26 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
销售工作人员的自我评价分享
2013/11/10 职场文书
租房合同协议书
2014/04/09 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
小小商店教学反思
2014/04/27 职场文书
入党综合考察材料
2014/06/02 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
内勤岗位职责
2015/02/10 职场文书
社区国庆节活动总结
2015/03/23 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
小学英语新课改心得体会
2016/01/22 职场文书