zoukankan      html  css  js  c++  java
  • 数学之路(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



  • 相关阅读:
    物理机异常断电,linux虚拟机系统磁盘mount失败,导致无法启动; kubectl 连接失败
    [Docker] 制作并运行 Nginx 镜像
    [Docker] 在CentOS6.8 安装 Docker
    47.DOM例题
    46.脚本化css2
    44 脚本化操作css
    43.操作标签属性
    42回顾
    41:例题、知识点复习
    40.数组字符串例题
  • 原文地址:https://www.cnblogs.com/pangblog/p/3294970.html
Copyright © 2011-2022 走看看