Как я могу оптимизировать процесс свертки? - PullRequest
0 голосов
/ 30 января 2019

Мой алгоритм состоит в том, чтобы свернуть ядро ​​фиксированного размера вокруг изображения и на каждом этапе смотреть на границы части изображения.Если все границы равны нулю, установите всю часть изображения на ноль, иначе ничего не делайте.

Код:

def iterForms(img):
    height, width = img.shape
    size = 14

    for i in range(0, height - size - 2):
        for j in range(0, width - size - 2):
            crop = img[i : i + size + 2, j : j + size + 2]
            cleanCrop(crop)
    return img


def cleanCrop(crop):
    h, w = crop.shape
    borders = np.vstack((crop[0,:], crop[h-1,:], crop[:,0], crop[:,w-1]))
    if np.all(borders == 0):
        crop[:, :] = 0

Мне было интересно, есть ли оптимизированная функцияэто может свернуться вокруг изображения и для каждого шага выполнить функцию (в этом случае функция 'cleanCrop').Если его не существует, могу ли я использовать многопоточность для оптимизации этого процесса?Заранее спасибо.

РЕДАКТИРОВАТЬ: Это не технически Свертка .Давайте просто назовем это Скольжение вокруг изображения.

...