Как сохранить ссылку на массив вместо литерального значения, Python Numpy + PIL - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над реализацией Python, Pillow и Numpy, где я преобразую изображение Pillow в массив Numpy, используя следующее:

bitMap     = Image.open("./big-circle.jpg")
pixelArray = np.array(bitMap)

Это возвращает мне хороший, чистый массив.Моя цель состояла в том, чтобы создать функцию, которая разделяет каждый фрагмент изображения на красивые равные квадратные сегменты.Это работает, но у меня осталась переменная squares, на которую можно сослаться аналогично pixelArray, как показано:

print(pixelArray[5, 3]) # (255, 255, 255)
print(squares[0][3, 5]) # (255, 255, 255)

(причина для 5/3 против 3/5 - я хранюмои значения как x / y, где numpy извлекает их как y / x)

Весь смысл этой функции состоял в том, чтобы упростить редактирование отдельных квадратов, как это делается для более крупного родительского целевого проекта.Скажем, я хотел сделать следующее:

squares[2][0, 5] = [255, 205, 255]

Я хотел бы, чтобы указанная переменная pixelArray[y, x] также изменилась, из этого я также предположил бы, что он сможет получить значения[x, y] из самой pixelArray?

В функции я назначаю это следующим образом:

# setting the array full of zeroes
bundled = np.zeros(shape=(x_split, y_split), dtype=object)
...
# inserting, from the pixelArray I wish to reference
bundled[insert_y, insert_x] = pixelArray[store_y, store_x]
...
# finish rest, returning bundled
return bundled

Это работает, но было бы гораздо проще использовать ссылку на переменную pixelArray, чем создавать некоторыесвоего рода функция обратной интеграции, которая берет квадраты и применяет к ней другие метрики.

Мне кажется, что я реализовал очень сложное решение этой проблемы сегментации.

...