私はいくつかの画像処理を行っています、そして私は四辺形の4点の座標を持っています。(台形のようなもの)その中のすべてのピクセルの座標を取得するにはどうすればよいですか?ちなみに私はJavaを使っています。ありがとう!
3 に答える
スキャンラインポリゴンの塗りつぶしが必要です。
これは、このテーマに関する簡単なPDF講義です。
http://www.cs.binghamton.edu/~reckert/460/lect11_2009-areafill-transformations.pdf
これは、いくつかのサンプルCコードと基本的な考え方の良い図を含むWebページの例です。
http://alienryderflex.com/polygon_fill/
これが短い形式です。四辺形の線を左側と右側の線に分割します。定数Y座標の行ごとに、左側の線の交点を計算します。正しい線の交点を見つけます。2つの交差点の間のその行のすべてのピクセルは、台形の内側にあります。
歴史上、この種のことは元々(そしておそらく今でも)ソフトウェアで3Dシーンをレンダリングするために行われていました。当時は違う名前だったと思いますが、思い出せません。ただし、実際にピクセルを描画する必要はありません。アルゴリズムは、描画するかどうかに関係なく、ピクセルを提供します。
http://wiki.processing.org/w/Find_which_side_of_a_line_a_point_is_onには、ポイントが線のどちら側にあるかを見つける方法に関する擬似コードがあります。
クワッドがA、B、C、Dで定義されている場合、ポイントがAB、BC、CD、およびDAの「左側」にあるかどうかを確認すると答えが得られます。
編集:おっと、私はあなたの質問をすべてのポイントではなく、ポイントを見つけることとして読みました。これがまだ役立つことを願っています。
これは衝突検出の質問ですか?特定の点が図形の内側にあるかどうかを知りたいですか?それとも、シェイプ内のすべてのポイントの座標が本当に必要ですか?