图像匹配(欧式距离)

图像匹配之欧式距离算法

  (2016-12-09 14:23:28)
标签: 

图像处理

 

欧式距离算法

 

python

分类: 图像识别
欧式距离算法       
        在用差分矩阵均值对强噪声的识别失败了之后,我们决定用欧式距离算法。欧式距离算法的核心是:设图像矩阵有n个元素(n个像素点),用n个元素值(x1,x2,...,xn)组成该图像的特征组(像素点矩阵中所有的像素点), 特征组形成了n维空间(欧式距离就是针对 维空间的),特征组中的特征码(每一个像素点)构成了每一维的数值,就是x1(第一个像素点)对应一维,x2(第二个像素点)对应二维,. . .,xn(第n个像素点)对应n维。在n维空间下,两个图像矩阵各形成了一个点,然后利用数学上的欧式距离公式计算这两个点之间的距离,距离最小者就是最匹配的图像。

  欧式距离公式:
   点A = (x1, x2, ... , xn)
   点B = (y1, y2, ... , yn)
   AB^2  = (x1-y1)^2+(x2-y2)^2+...+(xn-yn)^2
  AB就是所求的A,B两个多维空间中的点之间的距离。
实验图:
                                图像匹配之欧式距离算法
                                                                                                img

                                                                图像匹配之欧式距离算法
                                                                                                  imgfind
代码如下:(Python)
图像匹配之欧式距离算法
图像匹配之欧式距离算法
图像匹配之欧式距离算法

强噪声(50000随机点)效果图如下:

                       图像匹配之欧式距离算法
                识别成功,再把50000噪声点换成500000(50万)个噪声点,效果会怎样呢?

强噪声(50万随机点)效果图如下:

                                      图像匹配之欧式距离算法
                                  这图太模糊了,这是范冰冰吗?估计她妈也认不出来了吧!(大笑)
                   但是我们的算法成功的识别出来了,还优雅的把她的头部圈起来了。

我们把图片旋转一下角度会不会也成功的识别呢?(我好坏)
旋转图片的代码如下:(Python)
图像匹配之欧式距离算法
图像匹配之欧式距离算法

旋转20度后的效果图如下:

   图像匹配之欧式距离算法
  我们把这张图片保存下来,用来对欧式距离算法进行测试。

  把这张被旋转20度的图片加载进上面的欧式距离算法,效果如下(无噪声):

    图像匹配之欧式距离算法
      成功识别!

   再来点刺激的,加上强噪声,效果图如下(50000噪声点):

    图像匹配之欧式距离算法
   依旧被识别!

继续挑战,旋转60度:
实验图:

图像匹配之欧式距离算法

运行之后的效果图(无噪声):

图像匹配之欧式距离算法

    头部识别的有点偏,但是考虑头部是斜着的,画矩形的话,本来也就是不可能完全圈中的,除非   你的矩形也可以斜着画。偏差在我们可以接受的范围内,所以这样也算是成功识别了。

  可见欧式距离算法还是蛮强悍的啊!强到没朋友!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值