GLCM을 사용하여 텍스처를 검색하고 SVM 분류기를 사용하여 분류하려면 어떻게합니까?


12

나는 간 종양 분할 및 분류 프로젝트에 있습니다. 간과 종양 분할에 각각 지역 성장과 FCM을 사용했습니다. 그런 다음 텍스처 피처 추출에 그레이 레벨 동시 발생 매트릭스를 사용했습니다. 분류를 위해 Support Vector Machine을 사용해야합니다. 그러나 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- 평균 알고리즘을 구현하기 위해 무엇을 사용 했습니까?
Spacey

@ 모하마드 나는 당신을 얻을 수 없습니다. 소프트웨어에 대해 문의하는 경우 Matlab을 사용했습니다.
Gomathi

예, 알고 있습니다. 그러나 퍼지 -C- 평균 분할 구현을 위해 내장 라이브러리를 사용 했습니까, 아니면 직접 작성했거나 타사 라이브러리를 가져 왔습니까? 분할 알고리즘을 구현하는 데 관심이 있기 때문에 묻습니다. 플랫폼도 MATLAB입니다.
Spacey

@Mohammad 아니요, FCM 전용 라이브러리를 설치하지 않았습니다. FCM Thresheholding을 사용했습니다. Matlab Central 파일 교환을 참조하십시오. 나는 그것이 당신에게 도움이되기를 바랍니다.
Gomathi

좋은 방법이지만 ENVI 4.0 소프트웨어가 있습니다. 나는 나무 볼륨 평가 (7) 위성 이미지 탐사 과정을 원

답변:


8

Matlab을 사용하고 있습니까? 그렇다면 SVM 분류 기가 포함 된 Bioinformatics Toolbox가 필요하거나 교육 및 테스트를 위해 Matlab 래퍼가있는 libsvm을 다운로드 할 수 있습니다.

그런 다음 레이블이 지정된 데이터가 필요합니다. 건강한 간과 반대로 간암을 분류하고 있습니까? 그런 다음 간 종양 및 건강한 간 이미지가 각각 필요합니다.

그런 다음 일부 기능을 계산해야합니다. 그것들은 문제의 본질에 달려 있습니다. 텍스처 기능은 좋은 시작처럼 보입니다. 동시 발생 행렬 또는 로컬 이진 패턴 사용을 고려하십시오.

편집 : R2014a 릴리스 부터 통계 및 기계 학습 도구 상자에는 이진 SVM 분류기를 훈련시키는 fitcsvm 기능이 있습니다. 멀티 클래스 SVM 교육을위한 fitcecoc 도 있습니다 .


감사합니다. libsvm을 다운로드했습니다. 또한 그레이 레벨 동시 발생 행렬을 사용하여 텍스처 피처를 계산했습니다. 그러나 svm 프로그램에 입력하는 방법을 모르겠습니다. stackoverflow.com/questions/9751265/…를 참조하십시오 . 친절하게 안내해주십시오.
Gomathi

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.