
概要 📖 – 画像を周波数領域に変換
Spectrum TOPは、入力画像を離散フーリエ変換して周波数領域へ変換し、逆変換で元の画像へ戻す TOPです。順変換では明るさの周期成分を 32-bit の RG 2 チャンネルとして出力し、逆変換では加工した周波数データから画像を復元します。
主な用途 🎯
- 画像の周波数解析(明暗の繰り返し成分を抽出)
- 周波数領域でのフィルタリング(特定の周期パターンを除去・強調)
- ノイズや縞模様の除去(規則的な周期ノイズの抑制)
- 画像の特徴抽出(テクスチャの周期性を数値化)
- 逆変換による画像復元(加工した周波数データから画像へ戻す)
データフロー 🔄
入力: 画像(R/G/B/A のいずれか 1 チャンネル)
↓
離散フーリエ変換
↓
出力: 周波数成分(32-bit の RG 2 チャンネル)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Spectrum Page 📁
Mode .mode 🎛️
Mode (変換の向き) — 順変換(画像→周波数)か逆変換(周波数→画像)かを選択します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Discrete Fourier Transform | .dft |
順変換 — 入力から 1 チャンネル(Channel で選択)を取り出して離散フーリエ変換し、32-bit の RG 2 チャンネルとして出力します。 |
| Inverse Discrete Fourier Transform | .idft |
逆変換 — 32-bit RG チャンネルの入力を逆離散フーリエ変換し、32-bit モノクロ 1 チャンネルとして出力します。順変換の効果を打ち消し元の画像へ戻します。 |
Coordinate System .coord 🎚️
Coordinate System (座標系) — 順変換の出力/逆変換の入力をどの座標系で扱うかを選択します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Polar (Magnitude, Phase) | .polar |
極座標(大きさ・位相)— 順変換では RG 出力が大きさと位相になります。逆変換では入力の RG チャンネルを大きさと位相として解釈します。 |
| Cartesian (Real, Imaginary) | .cartesian |
直交座標(実部・虚部)— 順変換では RG 出力が実部と虚部になります。逆変換では入力の RG チャンネルを実部と虚部として解釈します。 |
Channel .chan ✅
Channel (対象チャンネル) — 入力画像のどのチャンネルを離散フーリエ変換にかけるかを選択します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| R | .r |
赤チャンネルを変換対象にします。 |
| G | .g |
緑チャンネルを変換対象にします。 |
| B | .b |
青チャンネルを変換対象にします。 |
| A | .a |
アルファチャンネルを変換対象にします。 |
Transform Rows .transrows 📏
Transform Rows .transrows 📏Transform Rows (行ごとに変換) — オンにすると、離散フーリエ変換・逆離散フーリエ変換を画像の 1 行単位で実行します。
実践アイデア 💡
Example 1: 周期ノイズ除去 🧹
Movie File In TOP → Spectrum TOP (DFT) → Threshold TOP → Spectrum TOP (IDFT)
規則的な縞模様や周期ノイズを含む画像を順変換で周波数領域へ移し、ノイズに対応する成分をしきい値処理で抑えてから逆変換で画像へ戻すことで、周期的なノイズを目立たなくするフローです。
- Movie File In TOP で対象画像を読み込む
- Spectrum TOP の Mode を「Discrete Fourier Transform」に設定し周波数領域へ変換
- Threshold TOP でノイズに対応する強い周波数成分を抑える
- 別の Spectrum TOP で Mode を「Inverse Discrete Fourier Transform」に設定し画像へ戻す
Example 2: 周波数成分の可視化 🔬
Constant TOP (パターン) → Spectrum TOP (DFT, Polar) → Level TOP
格子状や縞状のパターン画像を順変換で周波数領域へ移し、極座標の大きさ成分を Level TOP で見やすく整えることで、画像にどの周期成分が含まれているかをスペクトル画像として観察する用途です。
- パターン画像を Spectrum TOP の入力に接続する
- Mode を「Discrete Fourier Transform」、Coordinate System を「Polar (Magnitude, Phase)」に設定
- Level TOP で大きさ成分の明るさを調整して周波数分布を確認する
Example 3: 周波数フィルタリング 🎚️
入力画像 → Spectrum TOP (DFT) → Composite TOP (マスク) → Spectrum TOP (IDFT)
順変換した周波数データに対し、中心付近の低周波だけを残すマスクや高周波だけを残すマスクを掛け合わせてから逆変換することで、ぼかしやエッジ強調に相当する効果を周波数領域で実現する応用例です。
- Spectrum TOP の Mode を「Discrete Fourier Transform」に設定して周波数領域へ変換
- Composite TOP で残したい周波数帯のマスク画像を掛け合わせる
- Mode を「Inverse Discrete Fourier Transform」にした Spectrum TOP で画像へ戻す
関連オペレータ 🔗
類似機能OP 🔍
- Audio Spectrum CHOP — 音声信号を周波数領域へ変換する CHOP 版
組み合わせ推奨OP 🔄
- Threshold TOP — 周波数成分をしきい値で取捨選択
- Composite TOP — 周波数領域でマスク画像を掛け合わせる
- CHOP to TOP — CHOP の波形を画像化して変換にかける
前処理・後処理TOP 🎯
- 前処理: Monochrome TOP、Composite TOP
- 後処理: Threshold TOP、Lookup TOP
Info情報 📊
Spectrum TOP は周波数領域での解析・加工を担う TOP です。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
対応する入出力 📡
順変換の入力: R/G/B/A のいずれか 1 チャンネルを変換対象にします。順変換の出力: 32-bit の RG 2 チャンネル(大きさ・位相、または実部・虚部)を出力します。逆変換の入力: 32-bit RG 2 チャンネルを大きさ・位相、または実部・虚部として受け取ります。逆変換の出力: 32-bit モノクロ 1 チャンネルとして元の画像を復元します。
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 逆変換しても元の画像に戻らない
✅ Solution:
- 順変換と逆変換で
Coordinate Systemの設定(極座標/直交座標)を一致させる - 逆変換の入力が 32-bit RG 2 チャンネルになっているか確認する
- 途中の加工で大きさ成分と位相成分の対応が崩れていないか確認する
❌ Problem: 出力が真っ黒・真っ白に見える
✅ Solution:
- 順変換の出力は値の範囲が広いため Level TOP で明るさを調整して確認する
Pixel Formatが 32-bit 浮動小数点になっているか確認する- 極座標の大きさ成分は中心に集中するため表示倍率を見直す
❌ Problem: 意図した周波数成分が変換されない
✅ Solution:
Channelで正しい入力チャンネルを選んでいるか確認する- 行ごとに処理したい場合は
Transform Rowsをオンにする - 前段で Monochrome TOP を使い単一チャンネルに整える
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

