GaborFilter[data,r,k]
画素半径 r,波動ベクトル k のGaborカーネルでたたみ込むことで data にフィルタをかける.
GaborFilter[data,r,k,ϕ]
位相変位 ϕ でGaborカーネルを使う.
GaborFilter[data,{r,σ},…]
半径 r ,標準偏差 σ のGaborカーネルを使う.
GaborFilter
GaborFilter[data,r,k]
画素半径 r,波動ベクトル k のGaborカーネルでたたみ込むことで data にフィルタをかける.
GaborFilter[data,r,k,ϕ]
位相変位 ϕ でGaborカーネルを使う.
GaborFilter[data,{r,σ},…]
半径 r ,標準偏差 σ のGaborカーネルを使う.
詳細とオプション
- GaborFilterは,テクスチャの解析と分割のために画像処理でよく使われる,線形で空間的な方向性を持つ周波数選択的なフィルタである.空間領域では,2DのGaborフィルタカーネルは平面正弦波で調節されたガウス関数である.
- data は次のいずれでもよい.
-
list 任意階数の数値配列 tseries TimeSeriesやTemporalData等の時間データ image 任意のImageオブジェクトまたはImage3Dオブジェクト audio Audioオブジェクト video Videoオブジェクト - GaborFilter[data,r,k]はGaborFilter[data,{r,r/2},k,0]と等価である.
- r あるいは σ のどちらかは,異なる方向に対して異なる値を指定するリストでよい.
- GaborFilter[image,…]はデフォルトで image と同じ大きさの実数型の画像を与える.
- 指定可能なオプション
-
Padding "Fixed" 充填メソッド Standardized True 切断を説明するためにGaborカーネルを再スケールするかどうか WorkingPrecision Automatic 使用精度 - Padding->Noneと設定すると,GaborFilter[data,…]は一般に data より小さい画像を与える.
例題
すべて開く すべて閉じる例 (3)
GaborFilter[[image], 20, {.5, .5}]//ImageAdjust10GaborFilter[[image], 5, {0, 0, 1}]list = N@Table[Sin[ π t^2 + 2π], {t, 0, 5, (1/30)}];
ListLinePlot[{list, GaborFilter[ list, 20, {.5}]}]スコープ (8)
データ (5)
mat = Array[KroneckerDelta, {20, 20}];
res = GaborFilter[mat, 10, {.5, -.5}];
ArrayPlot /@ {mat, res}TimeSeriesオブジェクトにフィルタをかける:
ts = TemporalData[TimeSeries, {{{0., -0.27267267057145633, -0.6672983789995302, -0.5338541947930846,
-0.6117404489279314, -0.6755527076595494, -0.02125421294486496, -0.10792797291843935,
-0.6138271235477938, -0.3248568606554575, -0.08843449054 ... 2053424, -0.49980440691873723, -0.5388679788215971,
-0.4101602764645551}}, {{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];filtered = GaborFilter[ts, 10, {.1}]ListLinePlot[{ts, filtered}, PlotLegends -> {"original data", "filtered"}]Audio信号にフィルタをかける:
a = Import["ExampleData/rule30.wav"];
b = AudioNormalize[GaborFilter[a, 20, {1}]]AudioPlot[{a, b}]GaborFilter[[image], 20, {0.3, 0.3}]//ImageAdjustGaborFilter[Video["ExampleData/fish.mp4"], 10, {0.3, 0.3}]パラメータ (3)
異なるカーネル半径を使ってノイズの多い信号にGaborフィルタをかける:
ts = TemporalData[TimeSeries, {{{0., -0.27267267057145633, -0.6672983789995302, -0.5338541947930846,
-0.6117404489279314, -0.6755527076595494, -0.02125421294486496, -0.10792797291843935,
-0.6138271235477938, -0.3248568606554575, -0.08843449054 ... 2053424, -0.49980440691873723, -0.5388679788215971,
-0.4101602764645551}}, {{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];filtered = GaborFilter[ts, #, {0}]& /@ {1, 3, 9};
ListLinePlot[filtered, PlotLegends -> {"r=1", "r=3", "r=9"}]filtered = GaborFilter[ts, {9, #}, {0}]& /@ {1, 5};
ListLinePlot[filtered, PlotLegends -> {"σ=1", "σ=5"}]filtered = Table[GaborFilter[ts, 3, {k}], {k, {0., π / 3., 2π / 3.}}];
ListLinePlot[filtered, PlotLegends -> {"k={0}", "k={π/3}", "k={2π/3}"}]GaborFilter[[image], 6, {π / 3, 0}]//ImageAdjustGaborFilter[[image], 6, {0, π / 3}]//ImageAdjustGaborFilter[[image], 6, {π, π} / 4]//ImageAdjustGaborFilter[[image], 3, {1, 1}, 0]//ImageAdjustGaborFilter[[image], 3, {1, 1}, π / 2]//ImageAdjustオプション (6)
Padding (3)
v = Table[SawtoothWave[(n/10)], {n, -10, 10}];
pad = {"Fixed", "Periodic", "Reversed"};ListLinePlot[GaborFilter[v, 5, {0}, Padding -> #]& /@ pad, PlotRange -> All, PlotLegends -> pad]さまざまな充填方法を使ってグレースケールの画像にGaborフィルタをかける:
ImageAdjust[GaborFilter[[image], 20, {Pi, Pi} / 2, Padding -> #]]& /@ {"Fixed", "Periodic"}Padding->Noneは,通常は入力画像よりも小さい画像を返す:
GaborFilter[[image], 20, {0, 0}, Padding -> None]WorkingPrecision (3)
MachinePrecisionは,デフォルトで,整数配列とともに使われる:
GaborFilter[{3, 4, 4, 3}, 1, {1}]GaborFilter[{3, 4, 4, 3}, 1, {1}, WorkingPrecision -> ∞]GaborFilter[{1.0000000000000000000, 2.0000000000000000000, 3.0000000000000000000, 4.0000000000000000000}, 1, {1}]GaborFilter[{1.0000000000000000000, 2.0000000000000000000, 3.0000000000000000000, 4.0000000000000000000}, 1, {1}, WorkingPrecision -> MachinePrecision]画像にフィルタをかけるときは,WorkingPrecisionは無視される:
GaborFilter[[image], 2, {1, 1}, WorkingPrecision -> Infinity]ImageType[%]アプリケーション (3)
画像にGaborフィルタを適用し,画像中の垂直線を検出する:
GaborFilter[[image], {9, {3, 1}}, {0, 2}]//ImageAdjustGaborFilter[[image], 6, {1, 1} / 2, Pi / 2]//ImageAdjustGaborフィルタの大きさは正弦成分と余弦成分のノルムの平方として計算される:
gaborMagnitude[image_, r_, k_] := With[{data = ImageData[image]}, Image[GaborFilter[image, r, k, 0] ^ 2 + GaborFilter[image, r, k, Pi / 2] ^ 2]]i = [image];
λ = .5;r = 10;
{t1, t2} = Table[ImageAdjust[gaborMagnitude[i, r, λ k]], {k, {{1, -1}, {1, 1}}}]ImageCompose[i, {ImageAdd@@MapThread[ImageMultiply[MorphologicalBinarize[#1], #2]&, {{t1, t2}, {Red, Green}}], .3}]特性と関係 (5)
GaborFilterは,GaborMatrixによるたたみ込みに等しい:
i = [image];
g1 = GaborFilter[i, 10, .5{1, -1}]//ImageAdjustg2 = ImageConvolve[i, GaborMatrix[10, .5{1, -1}]]//ImageAdjustg1 === g2値が0の波動ベクトルにGaborフィルタをかけることはガウス平滑化に等しい:
GaborFilter[{1, 1, 1, 1, 1, 0, 0, 3, 12, 1, 0, 0, 0, 0, 0}, 1, {0}] == GaussianFilter[{1, 1, 1, 1, 1, 0, 0, 3, 12, 1, 0, 0, 0, 0, 0}, 1, Method -> "Gaussian"]h = GaborFilter[ArrayPad[{{1}}, 10], 10, .75{1, 1}];
ListPlot3D[h, Mesh -> False, PlotRange -> All]Plot3D[Evaluate[Abs@ListFourierSequenceTransform[h, {u, v}]], {u, 0, π}, {v, 0, π}, Mesh -> False, PlotRange -> All]GaborFilter[[image], 5, {1, 1}]//ImageAdjustGaborFilterは線形フィルタである:
list1 = {1, 1, 1, 1, 1, 0, 0, 3, 12, 1, 0, 0, 0, 0, 0};
list2 = {2, 2, 2, 2, 1, 5, 4, 6, 2, 2, 1, 1, 1, 1, 1};
GaborFilter[list1 + list2, 1, {1}] == GaborFilter[list1, 1, {1}] + GaborFilter[list2, 1, {1}]関連するガイド
テキスト
Wolfram Research (2012), GaborFilter, Wolfram言語関数, https://reference.wolfram.com/language/ref/GaborFilter.html (2025年に更新).
CMS
Wolfram Language. 2012. "GaborFilter." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/GaborFilter.html.
APA
Wolfram Language. (2012). GaborFilter. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GaborFilter.html
BibTeX
@misc{reference.wolfram_2026_gaborfilter, author="Wolfram Research", title="{GaborFilter}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/GaborFilter.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_gaborfilter, organization={Wolfram Research}, title={GaborFilter}, year={2025}, url={https://reference.wolfram.com/language/ref/GaborFilter.html}, note=[Accessed: 03-November-2026]}