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

时间:2021-05-22

下面的代码通过积分图计算一张图片的一种haar特征的所有可能的值。初步学习图像处理并尝试写代码,如有错误,欢迎指出。

import cv2import numpy as npimport 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 haarFeaturesimg = 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特征的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章