リンクされたソースは「融合モードを<乗算>に変更する」と述べているため、実行する操作は入力陰影起伏の単純な平均ではありません(これについては、gdal_hillshadesを平均化する方法も参照してください)。それは別のものです。それでも、3つの異なる太陽光の方向の陰影起伏を作成しましょう。
gdaldem hillshade input.tif hillshades_A.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges
gdaldem hillshade input.tif hillshades_B.tmp.tif -s 111120 -z 5 -az 355 -alt 60 -compute_edges
gdaldem hillshade input.tif hillshades_C.tmp.tif -s 111120 -z 5 -az 275 -alt 60 -compute_edges
A、B、Cの最低値を維持
最初のアルゴリズムは、最も暗いピクセルをフィルタリングして保持することですが、入力A、B、CAのブール値の中でより低い値のピクセルでもこれを行うことができます。
gdal_calc.py -A hillshades_A.tmp.tif -B hillshades_B.tmp.tif -C hillshades_C.tmp.tif --outfile=./hillshades_xl.tmp.tif \
--calc="(A*(A<=B)*(A<=C)+ B*(B<A)*(B<=C)+ C*(C<A)*(C<B))"
影に支配された領域は、中央の光の反対側よりも多くなり、各側で40⁰増加しました。提供されたリンクではなく、この現在のアルゴリズムは啓発された領域を失いすぎているようです。
315±30⁰
電流の角度が小さい(角度の変化が小さい)ほう315±40⁰
がいいでしょう。
次の図は、方程式の基礎です。光源A、B、C、および各パーツのピクセル値A、B、Cのブール比較を示しています。等値線をブール値に含めるには、特別な注意が必要です。中央線は221
、垂直光源の値を持ちます。影響のある領域について考えてください。最も近い光源が主な影響であり、最も弱い影響は最も弱いものです。
A、B、Cの極値を保持する
他のブールアルゴリズムは、最も暗いピクセルと最も白いピクセルの両方の最も極端な値を維持することです。次の図は、ブール式について説明しています。円の各第六のためには、三角形領域プラス時計回りの等価ラインを選択するために、A、B、C、およびブールから維持する値を識別し、それだけで。(上から時計回りに):
--calc="A*(A>B)*(A>=C) + C*(C>A)*(A>=221) + B*(C>A)*(C>=221) + A*(A<B)*(B<=221) + C*(B>A)*(A<=221) + B*(B>A)*(C<=221)"
角度の変化があまり重要でない場合は、良い結果が得られる可能性があります。
その他のブール
境界線セグメントの任意の組み合わせを使用して、円全体をカバーする、より複雑なブール値を作成できます。A、B、Cのうち1つの値のみが1つのセグメントに保持されることが重要です。
かける
私が作っいくつかのfailledの試みにmultiply
実績のある式でも、最終的な成功せずにピクセル値を。@Radouxju (a*b*c)^(1/3)
は、算術平均の代わりに(GEOMETRIC平均)が機能する(a*b*c)/(255*255)
可能性があることを指摘しました。幾何平均は算術平均以下であり、陰影領域の暗さを強調します。まだテストしていません。