GLCMマトリックスの結果です。GLCM画像の黒い横線と縦線の意味は何ですか? それらは問題ですか?
N = numel(unique(img)); % img is uint8
glcm = graycomatrix(img, 'NumLevels', N);
imshow(glcm)
GLCMマトリックスの結果です。GLCM画像の黒い横線と縦線の意味は何ですか? それらは問題ですか?
N = numel(unique(img)); % img is uint8
glcm = graycomatrix(img, 'NumLevels', N);
imshow(glcm)
これが問題だと思います: 関数 に対して、画像内の一意のグレーレベルの数よりも大きい引数を指定しましたgraycomatrix
。'NumLevels'
たとえば、256 レベル (8 ビット) の画像には 256 のグレーレベルしかありません。出力で 1000 レベルを要求すると、744 レベルにはデータがありません! つまり、はい、これは問題です。を使用して、画像のグレーレベル数を確認できますnumel(unique(I))
。
ps 今後、問題を生成するために使用したコードを添付してください。
私自身の GLCM 実装でも同じ動作が見られました。問題は、グレー レベルの数を指定してヒストグラムの均等化を実装していたことです。
最初に分割する前に画像の離散化を計算してから、行または列にゼロ値が与えられているかどうかを確認します。