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