Mathematica Spackling
以下のアプリは、ランダム画像にスペックルを適用します。「新しいパッチ」をクリックすると、使用する新しいランダム画像が生成され、現在の設定に従ってエフェクトが適用されます。効果は、油絵、ガウスフィルター、ポスタリゼーション、およびエンボス加工です。各エフェクトは個別に調整できます。乱数ジェネレータのシードは、1〜2 ^ 16の任意の整数です。
更新:エッジをソフトにするガウスフィルターが、最後に適用される画像効果になりました。この変更により、ポスタリゼーション効果は不要になり、削除されました。
Manipulate[
GaussianFilter[ImageEffect[ImageEffect[r, {"OilPainting", o}], {"Embossing", e, 1.8}], g],
Button["new patch", (SeedRandom[seed] r = RandomImage[1, {400, 400}])],
{{o, 15, "oil painting"}, 1, 20, 1, ContinuousAction -> False, Appearance -> "Labeled"},
{{e, 1.64, "embossing"}, 0, 5, ContinuousAction -> False, Appearance -> "Labeled"},
{{g, 5, "Gaussian filter"}, 1, 12, 1, ContinuousAction -> False, Appearance -> "Labeled"},
{{seed, 1}, 1, 2^16, 1, ContinuousAction -> False, Appearance -> "Labeled"},
Initialization :> (SeedRandom[seed]; r = RandomImage[1, {400, 400}])]
説明
説明は、ポスタリゼーションが採用GaussianFilter
され、早期に適用されたわずかに異なるバージョンに基づいています。ただし、各画像効果が画像をどのように変更するかを明確にするのに役立ちます。最終結果は、よりシャープなエッジを持つペイントテクスチャです。ガウスフィルターが最後にのみ適用されると、上の図に示すように、結果はより滑らかになります。
いくつかの画像効果を一度に1つずつ見てみましょう。
開始イメージを生成します。
r = RandomImage[1, {200, 200}]
Lenaは、各イメージエフェクトがリアルな画像をどのように変換するかを示します。
Lena = ExampleData[{"TestImage", "Lena"}]
レナに適用される油絵効果。
ImageEffect[Lena, {"OilPainting", 8}]
ランダム画像に適用された油絵効果。効果が強まりました(8ではなく16)。
r1 = ImageEffect[r, {"OilPainting", 16}]
レナに適用されるガウスフィルター効果(レナの油絵効果バージョンではありません)。半径は10ピクセルです。(最終版では、このエントリの上部に、GaussianFilterが最終効果として適用されます。)
GaussianFilter[Lena, 10]
r1に適用されるやや穏やかなガウスフィルター効果。半径は5ピクセルです。
r2 = GaussianFilter[r1, 5]
レナに適用される強力なポスタリゼーション効果。(アプリの最終バージョンでは、ポスタリゼーションを削除しました。しかし、分析の例はポスタリゼーションのある以前のバージョンに基づいていたため、分析には残しておきます。)
ImageEffect[Lena, {"Posterization", 2}]
r2に適用されたポスタリゼーション効果。
r3 = ImageEffect[r2, {"Posterization", 4}]
エンボスレナ
ImageEffect[Lena, {"Embossing", 1.2, 1.8}]
エンボスr3は画像処理を完了します。これは、OPの天井のように見えることを意図しています。
ceilingSample = ImageEffect[r3, {"Embossing", 1.2, 1.8}]
好奇心が強い人のために、同じ画像効果を適用したLenaを紹介します。