python 計(jì)算積分圖和haar特征的實(shí)例代碼
下面的代碼通過積分圖計(jì)算一張圖片的一種haar特征的所有可能的值。初步學(xué)習(xí)圖像處理并嘗試寫代碼,如有錯(cuò)誤,歡迎指出。
import cv2
import numpy as np
import matplotlib.pyplot as plt
#
#計(jì)算積分圖
#
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
# --- ---
# | | |
# | - | + |
# | | |
# --- ---
#
#就算所有需要計(jì)算haar特征的區(qū)域
#
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
#
#通過積分圖特征區(qū)域計(jì)算haar特征
#
def calHaarFeatures(integral_graph,features_graph):
haarFeatures = []
for num in range(len(features_graph)):
#計(jì)算左面的矩形區(qū)局的像素和
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]]
#計(jì)算右面的矩形區(qū)域的像素和
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 計(jì)算積分圖和haar特征的實(shí)例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖
這篇文章主要為大家詳細(xì)介紹了python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
基于Python實(shí)現(xiàn)一個(gè)簡易的數(shù)據(jù)管理系統(tǒng)
為了方便的實(shí)現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個(gè)完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺(tái)直接實(shí)現(xiàn)一個(gè)簡易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學(xué)習(xí)一下2021-12-12
python框架django項(xiàng)目部署相關(guān)知識詳解
這篇文章主要介紹了python框架django項(xiàng)目部署相關(guān)知識詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Pycharm的Available Packages為空的解決方法
這篇文章主要介紹了Pycharm的Available Packages為空的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
python3 解決requests出錯(cuò)重試的問題
這篇文章主要介紹了python3 解決requests出錯(cuò)重試的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
基于Python的自媒體小助手---登錄頁面的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于Python的自媒體小助手---登錄頁面的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

