主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ガボールフィルターを使使用したテクスチャの

この例では,テクスチャに基于て领域识别するためテクスチャのセグメンテーション目标犬と浴室床をセグメントはことです床セグメントすることです。の均一で滑らかなテクスチャの违いにより,セグメンテーションは一目了然です。

ガボールフィルターは哺乳類の視覚システムの単純細胞に対する合理的なモデルであることが実験からわかっています。そのため,ガボールフィルターはヒトがテクスチャをどのように区別するかを示す優れたモデルと考えられており,その結果,テクスチャを認識するアルゴリズムを設計するうえで役立つモデルになります。この例では,(一个。k . Jain和f . Farrokhnia“无监督纹理分割使用伽柏过滤器”,1991年)に記載されている基本的なアプローチを使用してテクスチャをセグメンテーションします。

入力イメージの読み取りと表示

入力イメージを読み取って表示します。この例では,実行を高速化するためにイメージを縮小しています。

一个= imread (“kobi.png”);= imresize (0.25);银色= rgb2gray(一个);图imshow(一个)

图中包含一个坐标轴。轴包含一个image类型的对象。

ガボールフィルターの配列の設計

さまざまな周波数と方向に調整したガボールフィルターの配列を設計します。周波数と方向の組み合わせは,多様なほぼ直交する,周波数と方向の情報のサブセットを入力イメージで局所的に使うように設計されています。方向は,0 ~ 150度の範囲を30度のステップの一定間隔でサンプリングします。波長は,4 /√(2)から入力イメージの斜辺の長さまで2のべき乗で増加させながらサンプリングします。こうした周波数と方向の組み合わせは,“はじめに”で引用した[Jain, 1991]から導き出されています。

图象尺寸=大小(A);numRows =图象尺寸(1);numCols =图象尺寸(2);wavelengthMin = 4 /√(2);wavelengthMax =函数(numRows numCols);n =地板(log2 (wavelengthMax / wavelengthMin));波长= 2.^(0:(n-2)) *波长min;deltaTheta = 45;取向= 0:deltaTheta: (180 - deltaTheta);g =伽柏(波长、取向);

ソースイメージからガボール振幅の特徴を抽出します。ガボールフィルターを取り扱う场合,各フィルターの振幅応答を使用するのが一般的です。ガボール振幅応答は「ガボールエネルギー」と呼ばれることもあります。GaborMag(:,:,Ind)で示されるM行N列のガボール振幅の各出力イメージは,対応するガボールフィルターg(印第安纳州)の出力です。

gabormag = imgaborfilt(银色、g);

ガボールの特徴を得るためのガボール振幅イメージの後処理

ガボール振幅応答を分類用の特徴として使用するには,複数の後処理が必要になります。この後処理にはガウス平滑化に加え,追加的な空間情報を特徴セットに追加する,関数主成分分析kmeansで必要となる形式に特色セットを整形する,普通の分类と平衡値に特徴を规化する,などがあり。

各ガボール振幅イメージには,良好にセグメント化された一定テクスチャの領域内でも,いくつかの局所的なばらつきが含まれています。これらの局所的なばらつきによってセグメンテーションの精度が損なわれます。単純なガウスローパスフィルターでガボール振幅情報を平滑化すると,これらのばらつきを補正できます。各特徴を抽出したガボールフィルターに適合するシグマを選びます。また,平滑化項Kを導入し,ガボール振幅応答に適用する平滑化の量を制御します。

i = 1:长度(g) sigma = 0.5*g(i).波长;K = 3;gabormag(:,:我)= imgaussfilt (gabormag(:,:我),K *σ);结束

分類用のガボール特徴セットを作成する場合,XとYの空間位置情報のマップを追加すると役立ちます。この追加情報により空間的に近接したグループを優先する分類が可能になります。

X = 1: numCols;Y = 1: numRows;(X, Y) = meshgrid (X, Y);featureSet =猫(3 gabormag X);featureSet =猫(3 featureSet Y);

データデータを整形,关节kmeansで必要となる形式の行列Xにします。イメージグリッド内の各ピクセルは個別のデータ点であり,変数featureSetの各平面は個別の特徴になります。この例には,ガボールフィルターバンクにある各フィルターの個別の特徴に加え,前の手順で追加した空間情報の2つの特徴が存在します。全体では,入力イメージのピクセルごとにガボールの特徴が24個空間的な特徴が2個となります。

numPoints = numRows * numCols;X =重塑(featureSet numRows * numCols, []);

ゼロ平均,単位分散に特徴を正規化します。

x = bsxfun(@minus,x,均值(x));x = bsxfun(@ rdivide,x,std(x));

特徴セットを可視化します。ガボール振幅の特徴がどのように見えるかを把握するために,主成分分析を使用して,入力イメージ内の各ピクセルの26次元表現からピクセルごとの1次元強度値に変換することができます。

多项式系数= pca (X);feature2DImage =重塑(X *多项式系数(:1),numRows, numCols);图imshow (feature2DImage, [])

图中包含一个坐标轴。轴包含一个image类型的对象。

このイメージを明確にセグメンテーションするのに十分な分散がガボール特徴情報にあることが,可視化によって明らかになりました。犬と床のテクスチャの差により,床と比較して犬が非常に暗く表示されています。

kmeansを使用したガボールテクスチャの特徴の分類

目的関数を最小化する平均値を求める場合,局所的最小値を避けるためにk - meansクラスタリングを5回繰り返します。この例で前提とする唯一の情報は,セグメント化するイメージ内に独立したテクスチャ領域がいくつ存在するかです。この場合には,独立した領域が2つ存在します。例のこの部分には、Statistics and Machine Learning Toolbox™ が必要です。

l = kmeans(x,2,“复制”5);

label2RGB.を使用してセグメンテーションを可視化します。

L =重塑(L,[numRows numCols]);图imshow (label2rgb (L))

图中包含一个坐标轴。轴包含一个image类型的对象。

imshowpairを使用してセグメント化されたイメージを可視化します。ラベル行列Lに関連付けられたマスクBWから作成される前景と背景のイメージを確認します。

Aseg1 = 0(大小(A),“喜欢”,);ASEG2 =零(大小(a),“喜欢”,);Bw = l == 2;BW = repmat(BW,[1 1 3]);Aseg1 (BW) = (BW);Aseg2 (~ BW) = (~ BW);图imshowpair (Aseg1 Aseg2,“蒙太奇”);

图中包含一个坐标轴。轴包含一个image类型的对象。