РЕДАКТИРОВАТЬ: Несмотря на то, что во время редактирования я не получил ответа, не отвечайте на такие вещи, как «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
ожидаемый результат: