ImageApply[f,image]
image 中の各画素のチャンネル値のリストに関数 f を適用する
ImageApply[f,{image1,image2,…}]
各 imageiから取られた対応する画素値の列に f を適用する.
ImageApply
ImageApply[f,image]
image 中の各画素のチャンネル値のリストに関数 f を適用する
ImageApply[f,{image1,image2,…}]
各 imageiから取られた対応する画素値の列に f を適用する.
詳細とオプション
- ImageApply[f,image]は,同じ関数が画像のすべての画素に適用される画像点演算子を実装する.色変換や量子化等のほとんどの色演算子は点演算子である.
- ImageApplyは任意のチャンネル数の2Dおよび3D画像に使うことができる.
- ImageApply[f,image]では,関数 f は数または任意長のリストを返すことができる.
- f に渡されるチャンネル値は,image のもとになっているタイプとは関係なく,一般に0から1までの範囲である.関数 f は一般に0から1の範囲のチャンネル値を返すと考えられる.
- ImageApply[f,{image1,…,imagen}]は画素ごとの画像演算子を実装する.関数 f には一連の n 個の引数が渡される. »
- ImageApply[f,{image1,image2,…}]は任意数の画像に使うことができ,必要なら切り取ったり切断したりして,imageiの最大タイプの画像を与える.
- 次は,使用可能なオプションである.
-
Interleaving True f をチャンネル値のリストに適用するか,各チャンネル値に別々に適用するか Masking All 処理する関心領域 - f の評価は結果を得る際のスピードに重点を置くためにキャッシュされることがある. »
- ImageApply[f,image]は image と同じ型の画像を返す.
例題
すべて開く すべて閉じる例 (2)
スコープ (8)
ImageApply[1 - #&, [image]]ImageApply[1 - #&, [image]]ImageApply[(| | | |
| - | - | - |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |).#&, [image]]ImageApply[Max, [image]]グレースケール画像のリスト中の,対応する画素値の最大のものを計算する:
ImageApply[Max, {[image], [image], [image], [image], [image], [image]}]RGBカラー画像のリスト中の一連の画素値に純関数を適用する:
ImageApply[#1 + 1.25 * #2 + #3&, {[image], [image], [image]}]ImageApply[RandomInteger[]#&, [image]]ImageApply[Max, {[image], [image]}]オプション (4)
Interleaving (2)
各カラーチャンネルの値に別々に関数を適用しなければならない場合はInterleaving->Falseを使う:
f[x_Real] := Piecewise[{{2x, x <= .5}, {2 - 2x, x > .5}}]
ImageApply[f, [image], Interleaving -> False]Interleaving->Falseの場合は,すべての画像が同じチャンネル数でなければならない:
ImageApply[Max, {[image], [image]}, Interleaving -> False]ImageApply[Max, {ColorConvert[[image], "RGB"], [image]}, Interleaving -> False]Masking (2)
ImageApply[1 - #&, [image], Masking -> Graphics[Disk[]]]関数を画像のリストに適用している場合の関心領域処理はサポートされていない:
ImageApply[{##}&, {[image], [image], [image]}, Masking -> [image]]
ImageApply[If[Mean[#4] > 0, Most[{##}], ConstantArray[#1, 3]]&, Flatten@{[image], [image], [image], [image]}]アプリケーション (11)
img = [image];
ImageApply[# ^ 1.6&, img]ImageApply[1 - #&, img]ImageApply[Mean, img]Manipulate[ImageApply[#[[channel]]&, [image]], {{channel, 1}, {1 -> "R", 2 -> "G", 3 -> "B"}}]ImageApply[List@@ColorData["AlpineColors", #]&, [image]]ImageApply[{#, Boole[# > .2]}&, [image]]ImageChannels[%]ImageApply[{1, 0, 0}&, [image], Masking -> [image]]ImageApply[1 / #&, [image]]//ImageAdjustImageApply[#1 / #2&, {[image], [image]}]//ImageAdjust//ColorNegateImport["ExampleData/CThead.tiff", "Image3D"]ImageApply[Max, Import["ExampleData/CThead.tiff"]]ImageApply[Rescale[{##}]&, {[image], [image], [image]}]img = [image];
m = ImageAdjust@GradientFilter[img, 3];
o = ImageAdjust[GradientOrientationFilter[img, 3], {0, 0, 1}, {-Pi / 2, Pi / 2}];
Image[ImageApply[{#2, 1, #1}&, {m, o}], ColorSpace -> "HSB"]i = [image];
ImageApply[Sqrt[#1^2 + #2^2]&, {ImageConvolve[i, (| | |
| - | -- |
| 1 | 0 |
| 0 | -1 |)], ImageConvolve[i, (| | |
| -- | - |
| 0 | 1 |
| -1 | 0 |)]}]特性と関係 (2)
ImageApplyは,入力と同じデータ型の画像を返す:
i = Image[{{100}}, "Byte"]ImageApply[1 + #&, i]//ImageTypeImageApply[1 + #&, i]//ImageDataImageApply[1 + #&, Image[i, "Real"]]//ImageDataImageApply[f,image]の f の評価は結果を得るスピードを重視するためにキャッシュされることがある:
gray = [image];単一チャンネルの"Byte"画像はキャッシュされた評価を使う:
ImageApply[x Sqrt[x], gray]これは,指定された関数が同じ入力に対して異なる結果を与える場合は,結果に影響するかもしれない:
ImageApply[x RandomReal[], gray]多チャンネル"Byte"画像はキャッシュされた評価をInterleaving->Falseで使う:
image = Image[RandomImage[1, {1024, 1024}, ColorSpace -> "RGB"], "Byte"];res1 = ImageApply[x Sqrt[x], image, Interleaving -> False];//RepeatedTimingキャッシュが行われない場合のインターリーブされた画像と所用時間を比較する:
res2 = ImageApply[x Sqrt[x], image, Interleaving -> True];//RepeatedTimingres1 == res2多チャンネルの"Byte"画像は,Listable関数でキャッシュされた評価を使う:
ImageApply[Function[x, Sqrt[x], Listable], image, Interleaving -> True];//RepeatedTiming考えられる問題 (3)
リストを入力として受け取る関数はシングルチャンネルの画像には適用できない:
ImageApply[Reverse, [image]]関数は,画像のすべての画素について数または数のリストを返さなければならない:
ImageApply[1 / #&, Image[{{2, 0, 2}}]]非零の画素を持つ画像には,同じ逆関数を適用することができる:
ImageApply[1 / #&, Image[{{2, 1, 2}}]]ImageApplyは,必要に応じて値を切り取る等して画像のデータタイプを保存する:
image = [image];ImageApply[x x + 0.4, Image[image, "Bit"]]% == image代りに"Real32"画像に関数を適用する:
ImageApply[x x + 0.4, Image[image, "Real32"]]おもしろい例題 (4)
ImageApply[RotateLeft, [image]]ImageApply[If[#[[1]] > #[[2]] + #[[3]], #, ConstantArray[Mean[#], 3]]&, [image]]ImageApply[TriangleWave, [image]]ImageApply[ {Sin[Pi # * 4], Sin[Pi #], Sin[Pi# * 3]}&, [image]]テクニカルノート
-
▪
- 画像処理
テキスト
Wolfram Research (2008), ImageApply, Wolfram言語関数, https://reference.wolfram.com/language/ref/ImageApply.html (2012年に更新).
CMS
Wolfram Language. 2008. "ImageApply." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2012. https://reference.wolfram.com/language/ref/ImageApply.html.
APA
Wolfram Language. (2008). ImageApply. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ImageApply.html
BibTeX
@misc{reference.wolfram_2026_imageapply, author="Wolfram Research", title="{ImageApply}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/ImageApply.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_imageapply, organization={Wolfram Research}, title={ImageApply}, year={2012}, url={https://reference.wolfram.com/language/ref/ImageApply.html}, note=[Accessed: 02-November-2026]}