GLCMを使用してテクスチャを取得し、SVM Classifierを使用して分類するにはどうすればよいですか?


12

私は肝臓腫瘍のセグメンテーションと分類のプロジェクトをしています。肝臓と腫瘍のセグメンテーションにはそれぞれRegion GrowingとFCMを使用しました。次に、テクスチャフィーチャの抽出にグレーレベルの共起行列を使用しました。分類にはサポートベクターマシンを使用する必要があります。しかし、特徴ベクトルをSVMへの入力として与えることができるように、特徴ベクトルを正規化する方法がわかりません。誰でもMatlabでそれをプログラムする方法を教えてもらえますか?

GLCMプログラムに、入力として腫瘍のセグメント化された画像を与えました。私は正しかったですか?もしそうなら、私の出力も正しいと思う。

私のglcmコーディングは、私が試した限りでは、

I = imread('fzliver3.jpg');
GLCM = graycomatrix(I,'Offset',[2 0;0 2]);
stats = graycoprops(GLCM,'all')
t1= struct2array(stats)


I2 = imread('fzliver4.jpg');
GLCM2 = graycomatrix(I2,'Offset',[2 0;0 2]);
stats2 = graycoprops(GLCM2,'all')
t2= struct2array(stats2)

I3 = imread('fzliver5.jpg');
GLCM3 = graycomatrix(I3,'Offset',[2 0;0 2]);
stats3 = graycoprops(GLCM3,'all')
t3= struct2array(stats3)

t=[t1,t2,t3]
xmin = min(t); xmax = max(t);
scale = xmax-xmin;
tf=(x-xmin)/scale

これは正しい実装でしたか?また、最後の行にエラーが表示されます。

私の出力は次のとおりです。

stats = 

   Contrast: [0.0510 0.0503]
Correlation: [0.9513 0.9519]
     Energy: [0.8988 0.8988]
Homogeneity: [0.9930 0.9935]
t1 =

Columns 1 through 6

0.0510    0.0503    0.9513    0.9519    0.8988    0.8988
Columns 7 through 8

0.9930    0.9935
stats2 = 

   Contrast: [0.0345 0.0339]
Correlation: [0.8223 0.8255]
     Energy: [0.9616 0.9617]
Homogeneity: [0.9957 0.9957]
t2 =

Columns 1 through 6

0.0345    0.0339    0.8223    0.8255    0.9616    0.9617
Columns 7 through 8

0.9957    0.9957
stats3 = 

   Contrast: [0.0230 0.0246]
Correlation: [0.7450 0.7270]
     Energy: [0.9815 0.9813]
Homogeneity: [0.9971 0.9970]
t3 =

Columns 1 through 6

0.0230    0.0246    0.7450    0.7270    0.9815    0.9813
Columns 7 through 8

0.9971    0.9970

t =

列1から6

0.0510    0.0503    0.9513    0.9519    0.8988    0.8988

列7から12

0.9930    0.9935    0.0345    0.0339    0.8223    0.8255

列13から18

0.9616    0.9617    0.9957    0.9957    0.0230    0.0246

列19から24

0.7450    0.7270    0.9815    0.9813    0.9971    0.9970

??? Error using ==> minus
    Matrix dimensions must agree.

入力画像は次のとおりです。

fzliver1 fzliver2 fzliver3


ファジィC-Meansアルゴリズムを実装するために何を使用しましたか?
スペイシー

@Mohammad私はあなたを取得しません。ソフトウェアについて質問している場合は、Matlabを使用しました。
Gomathi

はい、私はそれを理解していますが、Fuzzy-C-Meansセグメンテーションの実装に組み込みライブラリを使用したのですか、それとも独自のライブラリを作成したのか、サードパーティのライブラリをインポートしたのですか?セグメンテーションアルゴリズムの実装にも興味があり、プラットフォームもMATLABであるためです。
スペイシー

@Mohammadいいえ、FCM専用のライブラリはインストールしませんでした。私はFCM Thresheholdingを使用しました。Matlab Central File Exchangeを参照してください。あなたの役に立つことを願っています。
Gomathi

良い方法ですが、ENVI 4.0ソフトウェアがあります。Landsat 7衛星画像を処理してツリーボリュームを評価したい

回答:


8

Matlabを使用していますか?その場合、SVM分類子を含むBioinformatics Toolboxが必要になるか、トレーニングとテスト用のMatlabラッパーを含むlibsvmをダウンロードできます。

次に、ラベル付きデータが必要になります。健康な肝臓とは対照的に、肝臓腫瘍を分類していますか?次に、それぞれがそのようにラベル付けされた肝臓腫瘍と健康な肝臓の画像が必要になります。

次に、いくつかの機能を計算する必要があります。それらが何であるかは、問題の性質に依存します。テクスチャ機能は良いスタートのようです。共起行列またはローカルバイナリパターンの使用を検討してください。

編集: R2014aリリースの時点で、Statistics and Machine Learning Toolboxに、バイナリSVM分類器をトレーニングするためのfitcsvm関数があります。マルチクラスSVMをトレーニングするためのfitcecocもあります。


ありがとうございました。libsvmをダウンロードしました。また、グレーレベルの共起行列を使用してテクスチャフィーチャを計算しました。しかし、svmプログラムに入力を与える方法がわかりません。stackoverflow.com/questions/9751265/…をご参照ください 。親切にご案内します。
Gomathi

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.