直線を決定するために、画像上の2つのピクセルは、線形方程式によって、これらの画素のどの位置を見つけるために行うことができますか?yがないだけでなく、操作をすることができ、丸めても、小数であってもよい我々は直線方程式計算を期待するだろうが、Y = K * X + B yが算出されることにより、画像ピクセル座標の位置は、整数値であります例えば0.2 * X + 0.3線形方程式y =としてフォーム、それは「点線」で直線を記述するためにつながる可能性があり、直線上の点を説明します。
0.2 + 1 * 0.5 = 0.3、座標(1、0.5);
0.2×2 + 0.7 = 0.3、座標(2,0.7)。
0.9 + 0.3 * 3 = 0.2、座標(3.0.9)。
以下に示すように、傾向図に示すように直線を記述する。
直線MathWorks社のMATLABを描画する従来の方法のビデオ直線機能
また、直線をトレース、それは問題を解決するのは非常に簡単だと思いますが、無駄に持っていた、この点で少しラフな検索オンライン情報は非常に小さいです。そこで、著者らは、計算の迅速かつ簡単な方法、見つけるために、これらのライン上の画素位置を与えます。
我々は、B(X2、Y2)は、2つの点を決定することができ、傾きk AB線形方程式y = kが* X + B切片Bの座標値(X1、Y1)を知っています。
アルゴリズムのステップ:
1.横軸と縦軸は、それぞれ二点間の差を計算します。
deltaH = ABS(Y1 - Y2)。
deltaW = ABS(×1 - ×2)。
2.ループ可変範囲、deltaH <deltaW、引数[X1、X2]の範囲、およびその逆の引数の範囲(X1 <X2とする)場合[Y1、Y2]。
deltaH <DeltaW時間とき3、Aを選択し、B横変数から計算した場合、それぞれ、任意の起点を行うがJであり、縦軸はIであり、線形方程式の切片間TMPB B差はに従って得、iは、コードが縦軸である位置変数から最小差分値に対応する(COORコードが直線画素位置に格納されています)。
以下のための J = X1:X2 のHb = Y1 - 1。%以点为起点 彼は Y1 + = 1 。 H = 0 。 W = 0 ; 分 = 1000年。 以下のための I = Hbの:彼 TMPB = I - k個の*のJ; デルタ = ABS(B - TMPB)。 もしデルタ< 分 分 = デルタ。 H = I; Wは = J、 エンド エンド IF H〜は= 0 && Wは〜=で0 民 = +テンキー1 ;%直線上の画素の数 COOR(NUM、1)= H;%直線上の画素の位置座標 COORを(NUMは、2)= Wであり; Y1 = H; エンド エンド
ときdeltaH> deltaW
以下のために I = Y1:Y2 分 = 1000年; H = 0 ; Wは = 0 ; Wbを = X1 - 4。 ;%独立変数の範囲は、線形特性に応じて設定することができる 我々は = X1 + 4。; 用 J = Wbは:我々 TMPB = I - K * J; デルタ = ABS(B - TMPB); IFデルタ< ミン ミン = デルタ。 H= I; W = J; エンド エンド であれば Hは〜= 0〜= W && 0 テンキー =テンキー+ 1 。 COOR(NUM、1)= H; COOR(民、2)= W。 X1 = W; エンド・ エンド
この記事は、直線から引き出されます
ます。https://www.cnblogs.com/ImageVision/archive/2012/11/17/2775196.htmlで再現