2

mahotas ライブラリを使用して、衛星画像 (250 x 200 ピクセル) でテクスチャ分析 (GLCM) を実行しています。GLCM 計算は、ウィンドウ サイズ内で実行されます。そのため、スライディング ウィンドウの 2 つの隣接する位置について、2 つの共起行列をゼロから計算する必要があります。重なり合う領域で GLCM を計算しないようにするために、ステップ サイズも設定できることを読みました。以下のコードを提供しました。

#Compute haralick features
def haralick_feature(image):
    haralick = mahotas.features.haralick(image, True)
    return haralick


img = 'SAR_image.tif'
win_s=32 #window size
step=32 #step size

rows = img.shape[0]
cols = img.shape[1]
array = np.zeros((rows,cols), dtype= object)
harList = []

for i in range(0, rows-win_s-1, step):
        print 'Row number: ', r
    for j in range(0, cols-win_s-1, step):
        harList.append(haralick_feature(image))

harImages = np.array(harList)     
harImages_mean = harImages.mean(axis=1)

上記のコードでは、ウィンドウとステップ サイズを 32 に設定しました。コードが終了すると、サイズが 6 x 8 (250 x 200 ではなく) の画像が得られます。ステップ サイズが 32 に設定されているため、これは理にかなっています。 .

したがって、私の質問は次のとおりです。ステップ サイズを設定することにより (オーバーラップ領域での計算を回避し、コードが高速化されるようにするため)、サブセットを持つ代わりに、250 x 200 のサイズの画像全体の GLCM 結果を何らかの方法で導き出すことができます ( 6 x 8 次元)? または、通常の方法で(ステップサイズを設定せずに)画像をループする以外にオプションはありませんか?

4

1 に答える 1