二点によって決定直線上の画素座標を検出します

  直線を決定するために、画像上の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で再現

おすすめ

転載: blog.csdn.net/weixin_34395205/article/details/94102438
おすすめ