2011-07-14 4 views
9

cvLine()関数は、2つの点P1(x1、y1)とP2(x2、y2)が与えられた直線を描くことができます。私が立ち往生しているのは、すぐにそれを描くのではなく、この行のポイントを得ることです。OpenCVでラインからポイントを取得するには?

私は、線(緑色)ABと別の線ACを描画するとします。私がラインAB上のすべてのピクセルをたどると、Bに達する前に黒いピクセル(Aを囲む円の境界線)に遭遇するポイントがあります。

再びACライン上のピクセルに沿って移動すると、二度遭遇する。

line points

基本的に私は(緑)のライン上のポイントを取得しようとしているが、任意の点列構造を返すようにcvLine()いないようです。 OpenCVを使ってこれらのポイントを得る方法はありますか?

むしろダムアプローチは、その後、別の画像上cvLine()を使用して線を引くことで輪郭を見つけ、次に点についてその輪郭のCvSeq*(引かれた線)を横断するであろう。スクラッチ画像と元の画像は同じサイズのものであり、ポイントの位置を取得しています。私が言ったように、ちょっとばかな。どんな啓発的なアプローチも素晴らしいでしょう!

答えて

12

私はCvLinIteratorと思っています。

+1

ありがとうございました。何とかドキュメントでそれを逃した! – AruniRC

+1

リンクが壊れているようです。これは今のところ働いていますhttp://docs.opencv.org/modules/core/doc/drawing_functions.html#lineiterator –

+0

ありがとう@CalebDoucet私は私の答えを更新しました。 –

関連する問題