• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

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

机器学习算法 之欧氏距离

欧氏距离通常用于衡量2个点之间的距离,注意这2个点可以是定义在2维空间的,也可以是定义在3维空间或者n维空间的。

二维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2 )
三维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )
n维空间的公式
n维欧氏空间是一个点集,它的每个点 X 可以表示为 (x[1],x[2],…,x[n]) ,其中 x[i](i = 1,2,…,n) 是实数,称为 X 的第i个坐标,两个点 A = (a[1],a[2],…,a[n]) 和 B = (b[1],b[2],…,b[n]) 之间的距离 ρ(A,B) 定义为下面的公式。
ρ(A,B) =sqrt [ ∑( a[i] - b[i] )^2 ] (i = 1,2,…,n)

我们先以一个简单的图像边缘算法为例,让机器学习算法实现自动取如下图像的边缘


实现的最后效果是


图像是由2维像素点组成的矩阵,通常每个像素点由3个元素组成,红、绿、蓝,这3个基本分量可以组成高清的图像。我们可以把图像上的每个像素点理解为(x,y,z)这样的一个点,这个点定义在3维空间,每一维分别代表红、绿、蓝的分量。
假设我们将像素的顺序定义为:蓝、绿、红,我们就可以定义一个像素点为(blue,green,red),每个图像由无数个像素点组成,我们将这个像素点组成的矩阵定义为H*W大小,H为高,W为宽,我们就得到了一个H*W*3的矩阵。、
opencv是一个图像算法库,当然其中也定义了很多机器学习的算法,opencv就是这样定义的图像矩阵的,建议大家安装好opencv,win下有直接安装的exe文件,安装好后,可以直接调用它的python绑定库.
我们开始下面的操作
假设这个像素矩阵的变量名为img,则可以用python描述,如下编写代码,实现一个蓝色分量为200,绿色为100,红色为50的像素点的定义,这个像素点位于图像的300*150处
img[300,150,0]=200
img[300,150,1]=100  
img[300,150,2]=50

本博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/u010255642



 

posted @ 2013-08-31 23:57  Class Xman  阅读(365)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3