Spectrum TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Spectrum TOP の画像フーリエ変換機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 画像を周波数領域に変換

Spectrum TOPは、入力画像を離散フーリエ変換して周波数領域へ変換し、逆変換で元の画像へ戻す TOPです。順変換では明るさの周期成分を 32-bit の RG 2 チャンネルとして出力し、逆変換では加工した周波数データから画像を復元します。

主な用途 🎯

  • 画像の周波数解析(明暗の繰り返し成分を抽出)
  • 周波数領域でのフィルタリング(特定の周期パターンを除去・強調)
  • ノイズや縞模様の除去(規則的な周期ノイズの抑制)
  • 画像の特徴抽出(テクスチャの周期性を数値化)
  • 逆変換による画像復元(加工した周波数データから画像へ戻す)

データフロー 🔄

入力: 画像(R/G/B/A のいずれか 1 チャンネル)

離散フーリエ変換

出力: 周波数成分(32-bit の RG 2 チャンネル)

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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)

規則的な縞模様や周期ノイズを含む画像を順変換で周波数領域へ移し、ノイズに対応する成分をしきい値処理で抑えてから逆変換で画像へ戻すことで、周期的なノイズを目立たなくするフローです。

  1. Movie File In TOP で対象画像を読み込む
  2. Spectrum TOP の Mode を「Discrete Fourier Transform」に設定し周波数領域へ変換
  3. Threshold TOP でノイズに対応する強い周波数成分を抑える
  4. 別の 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)

順変換した周波数データに対し、中心付近の低周波だけを残すマスクや高周波だけを残すマスクを掛け合わせてから逆変換することで、ぼかしやエッジ強調に相当する効果を周波数領域で実現する応用例です。

  1. Spectrum TOP の Mode を「Discrete Fourier Transform」に設定して周波数領域へ変換
  2. Composite TOP で残したい周波数帯のマスク画像を掛け合わせる
  3. Mode を「Inverse Discrete Fourier Transform」にした Spectrum TOP で画像へ戻す

関連オペレータ 🔗

類似機能OP 🔍

組み合わせ推奨OP 🔄

  • Threshold TOP — 周波数成分をしきい値で取捨選択
  • Composite TOP — 周波数領域でマスク画像を掛け合わせる
  • CHOP to TOP — CHOP の波形を画像化して変換にかける

前処理・後処理TOP 🎯


Info情報 📊

Spectrum TOP は周波数領域での解析・加工を担う TOP です。

TOP固有情報 🖼️

  • resx: TOP の出力解像度 X (ピクセル単位)
  • resy: TOP の出力解像度 Y (ピクセル単位)
  • aspectx: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 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 を使い単一チャンネルに整える

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました