2

Python (numpy) を使用して GLCM マトリックスを見つけたいです。このコードを書いたところ、4 つの角度から正しい結果が得られましたが、非常に遅く、悪魔 128x128 で 1000 枚の画像を処理するには、約 35 分かかりました。

def getGLCM(image, distance, direction):

    npPixel = np.array(image) // image as numpy array

    glcm = np.zeros((255, 255), dtype=int)
    if direction == 1:  # direction 90° up ↑
        for i in range(distance, npPixel.shape[0]):
            for j in range(0, npPixel.shape[1]):
                glcm[npPixel[i, j], npPixel[i-distance, j]] += 1
    elif direction == 2:  # direction 45° up-right ↗
        for i in range(distance, npPixel.shape[0]):
            for j in range(0, npPixel.shape[1] - distance):
                glcm[npPixel[i, j], npPixel[i - distance, j + distance]] += 1
    elif direction == 3:  # direction 0° right →
        for i in range(0, npPixel.shape[0]):
            for j in range(0, npPixel.shape[1] - distance):
                glcm[npPixel[i, j], npPixel[i, j + distance]] += 1
    elif direction == 4:  # direction -45° down-right ↘
        for i in range(0, npPixel.shape[0] - distance):
            for j in range(0, npPixel.shape[1] - distance):
                glcm[npPixel[i, j], npPixel[i + distance, j + distance]] += 1

    return glcm

このコードをより速くするために助けが必要ですありがとう。

4

1 に答える 1