ImageTransformation[image,f]
位置 p の画素それぞれが image 中の位置 f[p]に対応する画像を与える.
ImageTransformation[image,f,size]
指定サイズの画像を与える.
ImageTransformation[video,…]
動画のフレームを変換する.
ImageTransformation
ImageTransformation[image,f]
位置 p の画素それぞれが image 中の位置 f[p]に対応する画像を与える.
ImageTransformation[image,f,size]
指定サイズの画像を与える.
ImageTransformation[video,…]
動画のフレームを変換する.
詳細とオプション
- ImageTransformation[image,f]は,逆変換とも呼ばれるもので,出力画像の位置{x,y}の各画素の値を入力 image の位置 f[{x,y}]から得ることができる.
- 変換関数 f は以下のいずれでもよい.
-
f 任意の関数 f TransformationFunction[…] 変換関数 - 動画入力の変換関数は,時間の関数(開始時点からの秒数)でもよい.この関数は時点 t で位置 p における各画素が位置 f[t][p]に対応するフレームを返す.
- ImageTransformationは,任意の2Dおよび3D画像に使うことができる.
- size の可能な設定
-
Automatic 自動の画像サイズ All 入力画像サイズと同じ width 明示的な width で高さは自動 {width,height} 明示的な width と height {width,depth,height} 三次元の明示的な width,depth,height - width,depth,height に使用可能な設定については,ImageResizeの関数ページを参照のこと.
- 2Dでは,入力画像の座標系の範囲は
であると想定される.ただし,
は縦横比である.デフォルトで,画像の左下隅が座標
に相当する. - 3Dでは,入力画像の座標系範囲は
であると想定される.ただし,
は画像の次元である.画像の左前下隅は,デフォルトで,座標
に対応する. - DataRangeオプションを指定することで,他の座標系を指定することができる.
- ImageTransformationで使用可能なオプション
-
Background 0 使用する背景色 DataRange Automatic もとの画像の座標範囲 Masking Full 変換する関心領域 Padding 0 充填法 PlotRange Automatic 結果の画像の座標範囲 Resampling Automatic リサンプリングの方法 - デフォルトで,ImageTransformationは入力画像と同じ縦横比の画像を返す.
- DataRangeでよく使われる設定値
-
Automatic 2Dでは
,3Dでは
Full 2Dでは
,3Dでは
{{left,right},{bottom,top}} 二次元の明示的な座標範囲 {{left,right},{front,back},{bottom,top}} 三次元の明示的な座標範囲 - 結果画像の座標系はPlotRangeオプションで指定する.次は,使われる設定値である.
-
Automatic DataRangeの設定値と等しい All 変換された全画素を含もうとする Full 入力画像と同じ範囲 {{left,right},…} 明示的な座標範囲 - ImageTransformation[image,f]では,結果画像の画素の次元は image の次元とPlotRangeとDataRangeの比率に基づく.
- Maskingオプションは以下のいずれかである.
-
All 入力画像のみ Full 入力画像および充填 mask 任意のマスク画像
例題
すべて開く すべて閉じる例 (2)
スコープ (13)
データ (4)
ImageTransformation[[image], # ^ 2&]ImageTransformation[[image], # ^ 2&]ImageTransformation[\!\(\*VideoBox[""]\), # ^ 2&]ImageTransformation[[image], # ^ 2&]変換関数 (7)
i = [image];
ImageTransformation[i, Sin[Pi #] ^ 2&]ImageTransformation[i, # Total[#]&]ImageTransformation[i, FractionalPart[2 # Total[#]]&]ImageTransformation[[image], {#[[1]] ^ 2, #[[2]] #[[1]]}&]ImageTransformation[[image], {#[[1]], 1 - Sqrt[#[[2]]]}&]ImageTransformation[[image], {{1, 1 / 2}, {2, -1}}.#&]TransformationFunctionを使って変換を指定する:
ImageTransformation[[image], RotationTransform[30 °]]transform[t_][pos_] := FractionalPart[t 2.5pos]ImageTransformation[\!\(\*VideoBox[""]\), transform]ImageTransformation[[image], TransformationFunction[(| | | | |
| - | --- | - | - |
| 1 | 0.3 | 0 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 1 |)]]サイズ (2)
i = [image];ImageTransformation[i, # ^ 2&]ImageDimensions[i] == ImageDimensions[%]ImageTransformation[i, # ^ 2&, 100]ImageTransformation[i, # ^ 2&, {200, 100}]ImageTransformation[i, # ^ 2&, Scaled[0.5]]ImageTransformation[i, # ^ 2&, Tiny]Allを使ってもとの画像と同じ大きさの画像を得る:
ImageTransformation[[image], RotationTransform[45°, {0.5, 0.5}], #, PlotRange -> (| | |
| ------------------- | ------------------- |
| (1/2) (1 - Sqrt[2]) | (1/2) + (1/Sqrt[2]) |
| (1/2) (1 - Sqrt[2]) | (1/2) + (1/Sqrt[2]) |)]& /@ {All, Automatic}ImageTransformation[\!\(\*Graphics3DBox[«10»]\), Identity, {Scaled[1 / 2], Scaled[1 / 2], Scaled[2]}]オプション (7)
Background (1)
i = [image];
ImageTransformation[i, RotationTransform[-10°], Masking -> All]ImageTransformation[i, RotationTransform[-10 °], Background -> Red, Masking -> All]ImageTransformation[i, RotationTransform[-10 °], Background -> Transparent, Masking -> All]アルファチャンネルがある画像は,デフォルトで,透明な背景を使う:
ImageTransformation[SetAlphaChannel[i], RotationTransform[-10 °]]DataRange (2)
デフォルトで,Automatic DataRangeが使われる:
i = [image];
ImageTransformation[i, TranslationTransform[{-0.2, -0.2}], DataRange -> Automatic]平行移動を画素座標で定義するときは,DataRangeFullを使う:
ImageTransformation[i, TranslationTransform[{-40, -40}], DataRange -> Full]カスタムのDataRangeを指定する:
ImageTransformation[i, TranslationTransform[{-0.2, -0.2}], DataRange -> {{0, 1}, {0, 0.5}}]
軸について対称となるようにデータ範囲を選んで垂直の鏡映を表示する:
ImageTransformation[i, ReflectionTransform[{0, 1}], DataRange -> #]& /@ {Automatic, {Automatic, {-.5, .5}}}ImageTransformation[\!\(\*Graphics3DBox[«8»]\), ReflectionTransform[{0, 0, 1}], DataRange -> {Automatic, Automatic, {-.5, .5}}]Masking (1)
デフォルトで,Masking->Fullが使われる.充填はもとの画像の外側の画素に使われる:
i = [image];
ImageTransformation[i, RotationTransform[30°], Padding -> "Fixed", Masking -> Full]Masking->Allとすると,もとの画像の外側にある画素にはBackgroundオプションの値が使われる:
ImageTransformation[i, RotationTransform[30°], Background -> Red, Masking -> All]ImageTransformation[i, RotationTransform[30°], Masking -> Graphics[{White, Disk[]}, Background -> Black], Background -> Red]PlotRange (1)
デフォルトで,出力画像のプロット範囲は入力画像と同じになる:
i = [image];
ImageTransformation[i, RotationTransform[45°]]PlotRange->Allを使って変換された画像の画素をすべて見る:
ImageTransformation[i, RotationTransform[45°], PlotRange -> All]ImageTransformation[i, RotationTransform[45°], PlotRange -> {{0, Sqrt[2]}, {-(1/Sqrt[2]), Sqrt[2] - (1/Sqrt[2])}}]ImageTransformation[i, RotationTransform[35°, {0.5, 0.5}]]ImageTransformation[i, RotationTransform[35°, ImageDimensions[i] / 2], PlotRange -> Full]Padding (1)
デフォルトで,Padding0が使われる:
i = [image];ImageTransformation[i, RotationTransform[30 °], Padding -> 0]ImageTransformation[i, RotationTransform[30° ], Padding -> Blue]ImageTransformation[i, RotationTransform[30 ° ], Padding -> "Fixed"]ImageTransformation[i, RotationTransform[30 ° ], Padding -> "Periodic"]ImageTransformation[i, RotationTransform[30 ° ], Padding -> Transparent]アプリケーション (6)
画像のペアから変換関数を決定して未知の幾何変換をもとに戻す:
i = [image];j = [image];
tf = FindGeometricTransform[j, i, TransformationClass -> "Rigid"][[2]]ImageTransformation[j, tf, DataRange -> Full]ImageTransformation[[image], 8Floor[# / 8] + 1&, DataRange -> Full]g = Function[p, With[{C = 150., R = 35.}, {p[[1]] + (R * Cos[(p[[1]] - C) * 360 * 2 / R] / 6), p[[2]]}]];
ImageTransformation[[image], g, DataRange -> Full]i = [image];
ImageTransformation[i, If[Min[FractionalPart[5 # + .5]] < .1, {-1, -1}, # - .02 Floor[5 # + .5]]&, PlotRange -> {{0, 1.1}, {0, .08 + ImageAspectRatio[i]}}, Padding -> 1]ImageTransformation[\!\(\*GraphicsBox[«3»]\), # + {0, .02Sin[ 20#[[1]]]}&]ImageTransformation[\!\(\*GraphicsBox[«3»]\), # + {0, .02Sin[ 20#[[1]]]}&, Padding -> 1]ImageTransformation[[image], ReflectionTransform[{1, 0}, {.5, 0}]]特性と関係 (2)
インタラクティブな例題 (1)
Manipulate[ImageTransformation[[image], Subscript[f, s / 200]], {{s, {100, 100}}, Locator}, ContinuousAction -> False, Initialization :> {Subscript[f, s_][pt_] := Module[{r = (Norm[pt - s]^2/Norm[s]), a = ArcTan@@(pt - s)},
s + r{Cos[a], Sin[a]}]}]おもしろい例題 (6)
ImageTransformation[[image], Sin[2Pi #] ^ 2&]ImageTransformation[[image], Sin[Pi #]Sin[Pi Reverse[#]]&]ImageTransformation[[image], Sin[3 Pi #]Sin[Pi Reverse[#]]&]f[pt_] := With[{s = {.5, .5}}, Module[{r, a},
r = Sqrt[Norm[pt - s]Max[s]];a = ArcTan@@(pt - s);
s + r{Cos[a], Sin[a]}]];
ImageTransformation[[image], f]f[pt_] := With[{s = {0.55, 0.55}}, Module[{r, a},
r = Norm[pt - s]^2 / Norm[s];a = ArcTan@@(pt - s);
s + r{Cos[a], Sin[a]}]]
ImageTransformation[[image], f]f[pt_] := With[{s = {.5, .5}}, Module[{r, a},
r = Norm[pt - s]^2 / Max[s];a = ArcTan@@(pt - s) / Pi * 180;
pt + {Mod[(a / 200 + r / 2.), 16 / 200.] - 8 / 200., 0}]]
ImageTransformation[[image], f]f[x_, y_] := {x + 10Sin[.05 x], y + 5Sin[.1 y]}
ImageTransformation[[image], f@@#&, DataRange -> Full]f[pt_] := With[{s = {.5, .5}}, Module[{r, a, an},
r = Norm[pt - s];a = ArcTan@@(pt - s);an = a + 2r;
s + r{Cos[an], Sin[an]}]];
ImageTransformation[[image], f]関連するガイド
-
▪
- 幾何演算 ▪
- コンピュータビジョン ▪
- 3D画像 ▪
- 画像の処理と解析 ▪
- 動画計算機能の更新履歴 ▪
- 動画編集 ▪
- 計算写真学
テキスト
Wolfram Research (2010), ImageTransformation, Wolfram言語関数, https://reference.wolfram.com/language/ref/ImageTransformation.html (2021年に更新).
CMS
Wolfram Language. 2010. "ImageTransformation." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/ImageTransformation.html.
APA
Wolfram Language. (2010). ImageTransformation. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ImageTransformation.html
BibTeX
@misc{reference.wolfram_2026_imagetransformation, author="Wolfram Research", title="{ImageTransformation}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/ImageTransformation.html}", note=[Accessed: 19-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_imagetransformation, organization={Wolfram Research}, title={ImageTransformation}, year={2021}, url={https://reference.wolfram.com/language/ref/ImageTransformation.html}, note=[Accessed: 19-October-2026]}