数学之路(3)-机器学习(3)-机器学习算法-欧氏距离(4)

我们用opencv定位人脸后,可以用欧氏距离做简单的人脸识别:



求2个人脸之间的欧氏距离

def get_EuclideanDistance(x,y):  
    myx=np.array(x)  
    myy=np.array(y)  
    return np.sqrt(np.sum((myx-myy)*(myx-myy)))  




def get_distance(img,findimg):
    newsize=(img.shape[1],img.shape[0])   
    fimg=cv2.resize(findimg,newsize)
    my_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    my_fimg=cv2.cvtColor(fimg,cv2.COLOR_BGR2GRAY)
    return get_EuclideanDistance(my_img,my_fimg)

>>> runfile(r'K:\book_prog\ann_ppsb1.py', wdir=r'K:\book_prog')
http://blog.csdn.net/myhaspl
myhaspl@qq.com


loading ...
>>>

选择最小的欧氏距离为最匹配的人脸

#IT精英比尔盖茨
isface1=get_distance(myimg[faceresult[0][0][0]:faceresult[0][1][0],faceresult[0][0][1]:faceresult[0][1][1],:],myimgt[facet_result[0][0][0]:facet_result[0][1][0],facet_result[0][0][1]:facet_result[0][1][1],:])
isface2=get_distance(myimg[faceresult[1][0][0]:faceresult[1][1][0],faceresult[1][0][1]:faceresult[1][1][1],:],myimgt[facet_result[0][0][0]:facet_result[0][1][0],facet_result[0][0][1]:facet_result[0][1][1],:])
if isface1<isface2:
    cv2.rectangle(myimg, faceresult[0][0], faceresult[0][1],(255,0,255))     
    cv2.rectangle(myimgt, facet_result[0][0], facet_result[0][1],(255,0,255))    
else:  
    cv2.rectangle(myimg, faceresult[1][0], faceresult[1][1],(255,0,255))    
    cv2.rectangle(myimgt, facet_result[0][0], facet_result[0][1],(255,0,255))    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值