Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

GLCM とプロットの相関からの統計の算出

この例では、一連のグレー レベル同時生起行列 (GLCM) を作成し、それらを基に統計を求める方法を説明します。また、graycoprops によって返される統計と元の入力イメージとの直接的な関係についても説明します。

イメージをワークスペースに読み取って表示します。この例はトゥルーカラー イメージをグレースケール イメージに変換してから 90 度回転したものです。

circuitBoard = rot90(im2gray(imread("board.tif")));
imshow(circuitBoard)

Figure contains an axes object. The axes object contains an object of type image.

さまざまの方向と距離のオフセットを定義します。このイメージにはさまざまの形と大きさのオブジェクトが含まれていますが、それらは垂直と水平の方向に並んでいるので、この例では距離が異なるだけの一連の水平オフセットを指定します。

offsets0 = [zeros(40,1) (1:40)'];

GLCM を作成します。オフセットを指定して関数 graycomatrix を呼び出します。

glcms = graycomatrix(circuitBoard,"Offset",offsets0);

関数 graycoprops を使用して GLCM から統計を算出します。この例ではコントラストと相関を計算します。

stats = graycoprops(glcms,["Contrast" "Correlation"]);

オフセットの関数として相関をプロットします。

figure, plot([stats.Correlation]);
title("Texture Correlation as a function of offset");
xlabel("Horizontal Offset")
ylabel("Correlation")

Figure contains an axes object. The axes object with title Texture Correlation as a function of offset, xlabel Horizontal Offset, ylabel Correlation contains an object of type line.

プロットには、オフセットが 7、15、23、30 の位置にピークがあります。入力イメージをよく見ると、イメージ内の特定の縦の要素が 7 ピクセルおきに繰り返されていることがわかります。

参考

関連するトピック