2016-08-30 16 views
-2

私はwikipediaの公式でGLCMメソッドを実装しようとしていますが、私はMATLABのインデックス問題のためにGLCMを満たす問題があります。グレーレベル共起行列

また、グレイレベルの数を減らすためにNitdepthQuantisationを使用しましたが、現在はフル8ビットを使用しています。

function [C] = GLCM(img, level, theta, delta) 

% Quantisation of the input Image to desired value 
imgQ = ImageQuantisation(img, level); 
[m n] = size(imgQ); 

% Get the number of gray levels 
maxGV = max(img(:)); 


% Create GLCM initial Matrix 
C = zeros(maxGV, maxGV); 


% Positions 
delta_x = ceil(delta*cos(theta)); 
delta_y = ceil(delta*sin(theta)); 

%% Find Occurences 
for i = delta_x+1:m-delta_x 
    for j = delta_y+1:n-delta_y 
    if(imgQ(i, j) == imgQ(i+delta_x, j+delta_y)) 

     C(,) = C(,) + 1; 
    end 

    end 
    end 



end 
+0

をあなたがどのような「指標」の問題を話していますか? – rayryeng

+0

それが解決されました。コード – Xeno1987

+0

を更新しました。その後、回答を作成してください。あなたの編集履歴に入るまで、彼らはあなたの問題を解決したことを知らないので、人々は混乱するでしょう。どちらかというと、見つからない場合は質問を削除してください。 – rayryeng

答えて

0

答えは内側のネストされた二重forループは画像にアクセスするための正しいインデックスを持って保証することによって求めることができます。彼らは内側のものではなくインデックスのために最も外側のforループのペアを使用していました。 OPは、これはMATLABがGLCMを計算するために与えるものとの間にわずかな違いがありますが、OPが見落としのために十分であることをコメントしている:

for o = 1:maxGV 
    for p = 1:maxGV 
     if(imgQ(i, j) == o & imgQ(i+delta_x, j+delta_y) == p) 
      C(o, p) = C(o, p) + 1; 
     end 
    end 
end 
関連する問題