問題の仕様:頂点座標(i、j)、(i + 1、j)、(i、j + 1)、(i + 1、j + 1)[i = 0、...、m-1; j = 0、...、n-1]および頂点座標(x_1、y_1)、...、(x_n、y_n)を持つポリゴンP。ここで、Pとオーバーラップするすべてのピクセルのパーセンテージを効率的に計算したいと思います。Pは非凸、または自己交差である可能性があります。
基本的に、これはスキャンラインラスタライズアルゴリズムの「ソフト」な一般化であり、ピクセルの中心がポリゴンの内側/外側にあるかどうかを効率的にチェックします。
私は次のアプローチを考えることができます:
(1)画像をアップサンプリングし(たとえば、10 * 10倍)、ポリゴン内にあるサブピクセルの中心の数を数え、100で割ります。問題:時間効率、メモリ効率、精度。
(2)少し大きく、(0.5,0.5)変換されたグリッドでスキャンラインアルゴリズムを使用して、完全に内側/外側にあるピクセルを計算し、「境界線」ピクセルのリストを作成し、エッジに沿って反時計回りに歩きます。途中のすべてのピクセルとの交差領域を計算します。問題:微妙なコーディングが必要で、バグを簡単に導入できます。
私の質問:誰かがすでにこの問題に遭遇しました、そしてあなたは3番目の優れたアプローチを知っていますか?そうでない場合は、(1)または(2)でより良い経験をしましたか?この問題はアンチエイリアシングのコンテキストで発生する可能性があると思いますか?