accumulate函數族是將圖片進行累加的函數。包括accumulate,accumulateProduct,accumulateSquare和accumulateWeighted。
函數聲明為:accumulate(src, dst, mask=None)。其中src為float類型的numpy數組,dst也一樣。如果不是float類型的數組會產生錯誤。
mask必須是np.uint8類型的與src一樣的數組。0表示該位置對應的數值不參與累加。其他值表示會累加。
示例如下:
#coding:utf8
import cv2
import numpy as np
a = np.array([[1],[2],[13]],np.float32)
b = np.zeros((3,1),np.float32)
mask = np.ones((3,1),np.uint8)
mask[1]=0
c = cv2.accumulate(a,b,mask)
print(c)
c = cv2.accumulate(c,b,mask)
print(c)
輸出值為:
[[ 1.]
[ 0.]
[13.]]
[[ 2.]
[ 0.]
[26.]]
函數聲明為:accumulateProduct(src1, src2, dst, mask=None)。src1,src2和dst為同樣類型的float32數組。
函數的功能是src1和src2相乘後,放在dst中。
#coding:utf8
import cv2
import numpy as np
a = np.array([[1],[2],[13]],np.float32)
b = np.array([[3],[5],[6]],np.float32)
c = np.zeros((3,1),np.float32)
d = cv2.accumulateProduct(a,b,c)
print(c)
[[ 3.]
[10.]
[78.]]
函數聲明為:accumulateSquare(src, dst, mask=None)。
函數的功能是src的平方放在dst中。
#coding:utf8
import cv2
import numpy as np
a = np.array([[1],[2],[13]],np.float32)
c = np.zeros((3,1),np.float32)
cv2.accumulateSquare(a,c)
print(c)
[[ 1.]
[ 4.]
[169.]]
函數聲明為:accumulateWeighted(src, dst, alpha, mask=None)
功能為按alpha權重累加。
#coding:utf8
import cv2
import numpy as np
a = np.array([[1],[2],[13]],np.float32)
c = np.zeros((3,1),np.float32)
cv2.accumulateWeighted(a,c,0.1)
print(c)
[[0.1 ]
[0.2 ]
[1.3000001]]