четвер, 15 квітня 2021 р.

Моменти

Геометричні, центральні та нормалізовані моменти до третього порядку напівтонового зображення
 
M = cv2.moments(img)
На виході отримуємо словник, наприклад для зображення
отримуємо
 
{'m00': 22948586.0,
 'm10': 6866263655.0,
 'm01': 6013970284.0,
 'm20': 2226506039305.0,
 'm11': 1799417631482.0,
 'm02': 1748143298232.0,
 'm30': 769164095261375.0,
 'm21': 583499620917638.0,
 'm12': 523061390611844.0,
 'm03': 548328215547088.0,
 'mu20': 172105973872.9095,
 'mu11': 25477940.198951833,
 'mu02': 172105516347.0926,
 'mu30': 39500301.21504896,
 'mu21': 8608784.186888447,
 'mu12': 2884830.478324109,
 'mu03': 19213388.887187116,
 'nu20': 0.0003268015312032179,
 'nu11': 4.837850587958049e-08,
 'nu02': 0.00032680066243536424,
 'nu30': 1.565707310596302e-11,
 'nu21': 3.4123376081045858e-12,
 'nu12': 1.143484993988415e-12,
 'nu03': 7.61577570718313e-12}
Нормалізовані інваріантні моменти ( Hu moments)
 
def HuMoments(img,tolerance=6):
    if len(img.shape)==3:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    moments=cv2.moments(img)
    huMoments = cv2.HuMoments(moments).flatten ()
    for i in range(0,len(huMoments)):
        if huMoments[i]!=0:
            huMoments[i]=math.copysign(1, huMoments[i])*math.log10(abs(huMoments[i]))
        return np.around(huMoments,tolerance) 

Немає коментарів:

Дописати коментар