Я работаю над реализацией 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, чем создавать некоторыесвоего рода функция обратной интеграции, которая берет квадраты и применяет к ней другие метрики.
Мне кажется, что я реализовал очень сложное решение этой проблемы сегментации.