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 次元)? または、通常の方法で(ステップサイズを設定せずに)画像をループする以外にオプションはありませんか?