0

ご存知のように、GLCM(Grey Level Co-occurrence Matrix)は、画像のテクスチャ特性を記述します。しかし、通常、OpenCVでのGLCMの計算では、matlabは画像を対象とすることがよくあります。しかし、今は画像内のすべてのポイントのGLCM値を取得したいのですが、それを取得するにはどうすればよいですか?

4

1 に答える 1

1

私があなたの問題を正しく理解しているなら、おそらくあなたはあなたの関心領域の外側のピクセルをNaNに設定することができます-これらのピクセルはGLCMを計算するときにMATLABによって無視されます。

例えば:

>> im = eye(7)
im =
     1     0     0     0     0     0     0
     0     1     0     0     0     0     0
     0     0     1     0     0     0     0
     0     0     0     1     0     0     0
     0     0     0     0     1     0     0
     0     0     0     0     0     1     0
     0     0     0     0     0     0     1
>> graycomatrix(im)
ans =
    30     0     0     0     0     0     0     6
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     6     0     0     0     0     0     0     0
>> im([1:10,13:16,21:24,28:29,34:37,41:49]) = NaN % Remove pixels outside ROI
im =
   NaN   NaN   NaN   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN     0   NaN   NaN
   NaN   NaN     1   NaN     0     0   NaN
   NaN     0     0     1     0     0   NaN
   NaN     0     0     0     1     0   NaN
   NaN   NaN     0     0   NaN   NaN   NaN
   NaN   NaN   NaN   NaN   NaN   NaN   NaN
>> warning('off', 'Images:graycomatrix:scaledImageContainsNan')
>> graycomatrix(im)
ans =
     6     0     0     0     0     0     0     2
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     2     0     0     0     0     0     0     0
>> warning('on', 'Images:graycomatrix:scaledImageContainsNan')

それはあなたが必要なことをしますか?

于 2011-11-24T09:45:54.207 に答える