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如何查看系统网络流量的信息
Sep 12 Python
Python将图片转换为字符画的方法
Jun 16 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python进行文件对比的方法
Dec 24 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
pandas分批读取大数据集教程
Jun 06 Python
浅析Python 多行匹配模式
Jul 24 Python
python实现取余操作的简单实例
Aug 16 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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 include_path设置技巧分享
2011/07/03 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
javascript与CSS复习(三)
2010/06/29 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
简单实现jquery隔行变色
2017/11/09 jQuery
vue中实现左右联动的效果
2018/06/22 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
Python中文字符串截取问题
2015/06/15 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
如何高效率的查找一个月以内的数据
2012/04/15 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
仓库管理制度
2014/01/21 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang