python 计算积分图和haar特征
2017-11-09 17:19
513 查看
下面的代码通过积分图计算一张图片的一种hear特征的所有可能的值。初步学习图像处理并尝试写代码,如有错误,欢迎指出。
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 # --- --- # | | | # | - | + | # | | | # --- --- # #就算所有需要计算hear特征的区域 # def getHearFeaturesArea(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 # #通过积分图特征区域计算hear特征 # def calHearFeatures(integral_graph,features_graph): hearFeatures = [] for num in range(len(features_graph)): #计算左面的矩形区局的像素和 hear1 = 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]] #计算右面的矩形区域的像素和 hear2 = 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]] #右面的像素和减去左面的像素和 hearFeatures.append(hear2-hear1) return hearFeatures img = cv2.imread("faces/face00001.bmp",0) integeralGraph = integral(img) featureAreas = getHearFeaturesArea(img.shape[0],img.shape[1]) hearFeatures = calHearFeatures(integeralGraph,featureAreas) print(hearFeatures)
相关文章推荐
- 【图像处理】利用积分图像法快速计算Haar特征
- 利用积分图像法快速计算Haar特征
- 【Paper】利用积分图像法快速计算Haar特征
- 利用积分图像法快速计算Haar特征
- 人脸Haar特征与快速计算神器:积分图
- 图像特征之 Haar-like特征(二)计算方法-积分图
- 【图像处理】利用积分图像法快速计算Haar特征
- 【人脸检测:Haar】利用积分图像法快速计算Haar特征(二)
- 二、利用积分图像法快速计算Haar特征
- 利用积分图像法快速计算Haar特征
- Haar特征与积分图
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图 .
- Haar特征和积分图
- Haar特征的另一种的快速计算方法—boxfilter
- Haar-like矩形特征的特征值的快速计算方法
- 极限优化:Haar特征的另一种的快速计算方法—boxfilter
- 计算Haar特征个数
- 计算Haar特征个数
- Haar-like矩形特征的特征值的快速计算方法
- haarlike特征计算 积分图