1. 程式人生 > >計算機視覺:畫線演算法

計算機視覺:畫線演算法

在影象中畫線是非常困難的,因為畫素點並不連續,所以看起來不像直線。可以採用演算法來畫線。

演算法1

考慮這條線是由連續的畫素點組成,模擬畫線的過程,即從一端出發向另一端畫畫素點,若當前斜率較小,則往平行於yy軸方向移動;若當前斜率較大,則往平行於xx軸方向移動;若當前斜率與線的斜率相等,則往平行於直線y=xy=x的方向移動。為了避免浮點數運算,所有變數採用整數比較。

演算法2

參考DDA演算法和Bresenham演算法,DDA演算法本質上是以一個方向為主方向,對於主方向上的每一個值確定另一個方向的值,連成直線,總畫素點個數恰好等於主方向值的個數。對於xx軸方向和yy軸方向,取首尾相差較大的方向為主方向,然後列出直線的表示式,根據主方向的值計算另一個方向的值,最後四捨五入。而Bresenham演算法實際上就是避免了浮點數運算的DDA演算法。