неділя, 25 квітня 2021 р.

Моментно-інваріантна метрика схожості

 
import skimage.measure

def GM(img,p,q):# геометричний момент  напівтонового зображення
    if len(img.shape)==3:
        img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    else:
        img_gray=img
    G_momemnts=skimage.measure.moments(img_gray, p+q)
    return   G_momemnts[p,q]

def Nu(img,p,q):# нормалізований момент 
    scaled_moment=-math.log10(GM(img,p,q))+math.log10(GM(img,0,0))*(1+(p+q)/2)
    return  scaled_moment

def L2(img1,img2,order):#L2 метрика
    L1=[Nu(img1,i,j) for i in range(order) for j in range(order)]
    L2=[Nu(img2,i,j) for i in range(order) for j in range(order)]
    return np.linalg.norm(np.array(L1)-np.array(L2))

def L0(img1,img2,order):#L0 метрика
    L1=[Nu(img1,i,j) for i in range(order) for j in range(order)]
    L2=[Nu(img2,i,j) for i in range(order) for j in range(order)]
    return abs(np.array(L1)-np.array(L2)).sum()
    

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

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