16

画像の問題をよりよく説明します

輪郭とその輪郭を通る線があります。
等高線と線の交点で、線と等高線の交点に特定の距離まで垂線を描きたい。交点と線の傾き
を知っています。 参考までに、この画像を添付しています。
ここに画像の説明を入力してください

4

2 に答える 2

13

写真の青い線が点 A から点 B に伸びており、点 B に赤い線を描きたい場合は、次の操作を実行できます。

  1. A から B に向かう方向ベクトルを取得します。これは次のようになります。 v.x = B.x - A.x; v.y = B.y - A.y;
  2. ベクトルを正規化します。 mag = sqrt (v.x*v.x + v.y*v.y); v.x = v.x / mag; v.y = v.y / mag;
  3. x と y を交換し、そのうちの 1 つを反転して、ベクトルを 90 度回転します。回転方向に関する注意: OpenCV と画像処理では、一般に、画像の x 軸と y 軸はユークリッドの方法で方向付けられません。特に、y 軸は上ではなく下を指します。ユークリッドでは、最後の x (最初の y) を反転すると反時計回り (ユークリッドの標準) に回転し、y を反転すると時計回りに回転します。OpenCV では逆です。たとえば、OpenCV で時計回りの回転を取得するには:temp = v.x; v.x = -v.y; v.y = temp;
  4. v の方向を指す B で新しい線を作成します C.x = B.x + v.x * length; C.y = B.y + v.y * length; (単純に長さを否定して反対方向に点 D を作成することにより、両方向に線を延長できることに注意してください。)
于 2011-12-29T07:11:27.790 に答える