ImagePyramidApply[f,pyr]
ImagePyramidオブジェクト pyr 中の全画像に f を適用する.
ImagePyramidApply[f,{pyr1,pyr2,…}]
各 pyriから取られた連続する対応レベルにf を適用する.
ImagePyramidApply
ImagePyramidApply[f,pyr]
ImagePyramidオブジェクト pyr 中の全画像に f を適用する.
ImagePyramidApply[f,{pyr1,pyr2,…}]
各 pyriから取られた連続する対応レベルにf を適用する.
詳細
- ImagePyramidApplyを使って画像ピラミッドの全レベルの画像を一度に変更することができる.
- 画像ピラミッドは,効果的なマルチスケール処理を簡単にするための画像の多重解像度表現で,ノイズ除去,画像のブレンディング,テクスチャ合成,効果的な描画等によく使われる.
- 画像ピラミッドは,徐々に解像度が低くなるいくつかの画像からなる.一般に,ピラミッドの特定のレベルが処理され,結果は逆処理を使って再構築される.
- ImagePyramidApplyは2Dおよび3Dの画像ピラミッドに使うことができる.
- 関数 f は異なるピラミッドのレベルに対して互換的な画像を返さなければならない.
- ImagePyramidApply[f,{pyr1,…,pyrn}]の f には n 個の引数が与えられる.
- ImagePyramidApply[f,{pyr1,pyr2,…}]は,任意の数の同等の画像ピラミッドに使うことができる.
例題
すべて開く すべて閉じる例 (1)
img = [image];
pyramid = ImagePyramid[img, "Gaussian", 4];
pyramidG = ImagePyramidApply[Function[img, GradientFilter[img, 1.4]], pyramid]InverseImagePyramid[pyramidG, "Laplacian"]//ImageAdjustGradientFilter[img, 1.4]//ImageAdjustアプリケーション (5)
効率的な画像ビューア (1)
大規模な画像をパンして移動し,さらにズームインするためには,大量のデータのインポートおよびリサイズが必要となる.ImagePyramidは,画像の適切なスケールを容易に提供することでこの問題を解決する.
img = ExampleData[{"TestImage", "Volubilis"}];ImageDimensions[img]pyr = ImagePyramid[img, {"Lowpass", "Linear"}, {80}]画像を適切な表示サイズにリサイズするのには,ほぼ1秒を要する:
ImageResize[img, {512}];//RepeatedTiming画像ピラミッドからリサイズされた画像の取得は約100倍高速である:
ImageResize[InverseImagePyramid[pyr, {512}], {512}];//RepeatedTiming画像ピラミッドは,大規模な画像に対して滑らかなズーミングを実現する:
Manipulate[
With[
{scale = 2^-s, dims = First[pyr["ImageDimensions"]]},
ImageResize[
ImageCrop[
InverseImagePyramid[pyr, Automatic, Floor[scale dims]],
{Round[320Power[2, -FractionalPart@Log[2, scale]]]}
],
{320}
]
],
{s, 0, 4.81538329581354},
Initialization :> {...}
]
| |
| |
マルチスケールの特徴検出 (3)
ピラミッドのレベルとタイプを変更して,すべてのレベルで山の尾根が検出されるようにする:
img = [image];pyramid = ImagePyramid[img, "Gaussian", 5]ridgePyr = ImagePyramidApply[RidgeFilter, pyramid]ラプラシアンピラミッドを仮定して,全レベルから検出された特徴を追加して再構築する:
InverseImagePyramid[ridgePyr, "Laplacian"]//ImageAdjustimg = [image];ImageSaliencyFilterを画像に適用する:
ImageSaliencyFilter[img]//ImageAdjust画像ピラミッドの全レベルに顕著性フィルタリングを適用してマルチスケールの結果を得る:
pd = ImagePyramid[img, "Gaussian", 4];pdSaliency = ImagePyramidApply[ImageSaliencyFilter, pd];ラプラシアン再構成を使って全レベルのフィルタ応答を合計する:
InverseImagePyramid[pdSaliency, "Laplacian"]//ImageAdjustvol = ExampleData[{"TestImage3D", "CTengine"}]pyramid = ImagePyramid[vol, "Gaussian", 3, Sqrt[2]]Rpyramid = ImagePyramidApply[vol RidgeFilter[vol, 1.2], pyramid]立体を再構築する際にピラミッドをラプラシアンピラミッドとして扱って,尾根形フィルタの帯域が制限された結果を累積する:
InverseImagePyramid[Rpyramid, "Laplacian"]//ImageAdjust画像効果 (1)
ヴェルナー・ハイゼンベルク(Werner Heisenberg)とエルヴィン・シュレーディンガー(Erwin Schrödinger)の画像を結合する:
werner = [image];erwin = [image];splitMerge[i1_, i2_] :=
With[{c = Floor[0.515 First@ImageDimensions[i1]]},
ImageAssemble[{{ImageTake[i1, All, {1, c}], ImageTake[i2, All, {c + 1, -1}]}}]]マルチスケールブレンディングを使わずに,2つの画像を分割して結合する:
splitMerge[werner, erwin]より好ましい結果を得るためには,画像ピラミッドを使って全スケールで画像を分割して結合するとよい:
pyramids = Map[ImagePyramid[#, "Laplacian", {2, 2}]&, {werner, erwin}];new = ImagePyramidApply[splitMerge, pyramids]InverseImagePyramid[new]関連するガイド
テキスト
Wolfram Research (2019), ImagePyramidApply, Wolfram言語関数, https://reference.wolfram.com/language/ref/ImagePyramidApply.html.
CMS
Wolfram Language. 2019. "ImagePyramidApply." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ImagePyramidApply.html.
APA
Wolfram Language. (2019). ImagePyramidApply. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ImagePyramidApply.html
BibTeX
@misc{reference.wolfram_2026_imagepyramidapply, author="Wolfram Research", title="{ImagePyramidApply}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/ImagePyramidApply.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_imagepyramidapply, organization={Wolfram Research}, title={ImagePyramidApply}, year={2019}, url={https://reference.wolfram.com/language/ref/ImagePyramidApply.html}, note=[Accessed: 03-November-2026]}