python怎么计算积分_python 计算积分图和haar特征的实例代码

下面的代码通过积分图计算一张图片的一种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 计算积分图和haar特征的实例代码

本文地址: http://www.cppcns.com/jiaoben/python/287676.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值