Я занимаюсь разработкой небольшого программного обеспечения для проекта колледжа, и у меня возникла проблема: у кода слишком низкая производительность.
Это программное обеспечение для редактирования изображений, а изображение представляет собой большой трехмерный список (основной список - это целое изображение, каждый список внутри него - горизонтальная линия, а каждый список внутри него - пиксель, содержащий три элемента).
Мне нужно сделать попиксельные корректировки, например, умножив их все на константу, чтобы это выглядело как
for y in range(0,len(image)):
for x in range (0,len(image[0])):
for c in range (0,3):
im[y][x][c] = (im[y][x][c])*a
Где image
- 3-й список
len(image)
- количество горизонтальных линий на изображении (размер по вертикали)
len(image[0])
- количество пикселей в горизонтальной линии (размер по горизонтали)
и c
является компонентом пикселя (от 0 до 2).
Этот цикл занимает несколько минут, чтобы просмотреть одно изображение с разрешением 12 Мп, и количество изображений, которое мне нужно обработать, составляет порядка сотен, так что это просто невозможно.
Что я могу сделать, чтобы добиться большей производительности? Даже редактирование программного обеспечения занимает несколько секунд, потому что это может быть довольно большой операцией, но этот код слишком медленный.
Спасибо!