Как эффективный способ «сгруппировать» максимальное количество соседних пикселей в квадрат? - PullRequest
0 голосов
/ 30 декабря 2018

РЕДАКТИРОВАТЬ: Несмотря на то, что во время редактирования я не получил ответа, не отвечайте на такие вещи, как «Google is your friend», мне нужен серьезный ответ.

Мне нужен код Python, который соседствует с группамипикселей в блоки как можно большего размера.

Я делаю игру, которая генерирует уровни на пиксель (не могу изменить это, это из нарисованного пользователем изображения).Проблема в том, что он слишком тяжел для GPU и CPU.

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

Я пытался этот кодсгруппировать его в строки, но я планирую свернуть его, потому что то, что группирует его по блокам, будет более эффективным на более медленных компьютерах.

Объяснение: cdata - это данные изображения в массиве numpy, уровень - это«пиксели», отсканированные из cdata, в следующем формате: [width, height, x, y]

level является выходным списком и имеет тот же формат, что и уровень.

for yscan in range(len(cdata)):
    vls=0
    vlsf=False
    for xscan in range(len(cdata[0])):
        if not [1,1,xscan,yscan] in ulevel:
            if [1,1,xscan-1,yscan] in ulevel:
                level.append([xscan-vls,1,xscan,yscan])
            vlsf=False
        elif vlsf:
            pass
        else:
            vls=xscan
            vlsf=True

ожидаемый результат:

...