1. 程式人生 > >像素間的基本關系-距離(轉)

像素間的基本關系-距離(轉)

所有 alt str a10 nal 意圖 www 中心 class

定義

對於像素p、q和z,分別具有坐標(x,y),(s,t)和(u,v),如果

(1) D(p,q) ≥ 0 (當且僅當p=q時,D(p,q)=0)

(2) D(p,q) = D(q,p)

(3) D(p,z) ≤ D(p,q) + D(q,z)

則稱D是距離函數或度量

歐幾裏得(歐式)距離

像素p(x,y)和q(s,t)間的歐式距離,就是我們在直角坐標系中最常用的兩點間的直線距離,定義如下:

技術分享
歐式距離

示意圖如下,A與B之間的歐氏距離就是A到B的直線距離:

技術分享
歐式距離示意圖

D4距離(城市距離)

像素p(x,y)和q(s,t)之間的D4距離定義為:

D4(p,q) = |x – s| + |y – t|

通俗地來理解,p和q是一座大城市裏面的兩座房子,在這城市裏面的大街上走路只能直走或者90度轉彎,從p走到q經過的距離就是城市距離。例如,與點(x,y)(中心點)D4距離小於等於2的所有像素如下圖所示:

技術分享
D4距離

具有D4 = 1的像素是(x,y)的4鄰域

D4距離又可以這樣理解:從點p向點q出發,每次能走一下個點必須是在當前像素點的4鄰域中,一步一步走到q點,一共經過的像素點數就是D4距離

D8距離(棋盤距離)

像素p(x,y)和q(s,t)之間的D8距離定義為:

D8(p,q) = max(|x – s| ,|y – t|)

兩點之間的棋盤距離就是以這兩點為一條對角線的矩形的較長的那條邊

例如,與點(x,y)(中心點)D8距離小於等於2的像素,形成如下圖所示的中心在(x,y)的正方形

技術分享
D8距離

具有D8 = 1的像素是(x,y)的8鄰域

D8距離又可以這樣理解:從點p向點q出發,每次能走一下個點必須是在當前像素點的8鄰域中,一步一步走到q點,一共經過的像素點數就是D8距離

註:

D4距離和D8距離與任何通路無關,僅僅與兩點的坐標有關。但是如果是m距離

http://www.jianshu.com/p/dc07ba10854c

像素間的基本關系-距離(轉)