(白い)長方形とそのスペースを占める(黒い)長方形のセットによって制限される2Dスペースを考えると、空の(白い)スペースに何らかのインデックスを付ける方法を探しています。その目的のために、空間内の任意のポイント(「黒い」長方形に属さないポイント)に対して、結果として得られる白い長方形のセットに最大の空の長方形が存在するように、(白い)長方形のセットを作成したいと思います。
ありがとう
(白い)長方形とそのスペースを占める(黒い)長方形のセットによって制限される2Dスペースを考えると、空の(白い)スペースに何らかのインデックスを付ける方法を探しています。その目的のために、空間内の任意のポイント(「黒い」長方形に属さないポイント)に対して、結果として得られる白い長方形のセットに最大の空の長方形が存在するように、(白い)長方形のセットを作成したいと思います。
ありがとう
グリッド (つまり画像) または連続した 2D 空間にいますか? 私の答えは、各点が整数座標を持つ場合です。それ以外の場合は、私の答えで近似値を得ることができます。
あなたの質問を正しく理解できれば、次の 2 つのことが必要です。
リストを計算するために、アルゴリズム O(N) を使用できます。ここで、N は白黒画像のピクセルの量です。http://www.ulg.ac.be/telecom/rectanglesで、そのようなアルゴリズムを説明している論文と、いくつかの (最適化されていない) C++ ソース コードを見つけることができます。実際には、非常に高速です。
ピンターの 2D 配列を計算するには、すべての最大の空の四角形のリストをトラバースし、それぞれについて、含まれるすべてのピクセルのポインターを (必要に応じて) 更新する必要があります。最大で N 個の空の長方形があり (prof については、http://www.ulg.ac.be/telecom/rectanglesにリンクされている論文を参照)、各長方形には最大で N 個のピクセルが含まれているため、このステップは最悪の場合です。ケース O(N^2)。このステップのコストを削減できるかどうかはわかりません。