Поиск местных максимумов в больших 3D -массивах NumpyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поиск местных максимумов в больших 3D -массивах Numpy

Сообщение Anonymous »

Я обрабатываю некоторые большие объемные данные изображения, которые присутствуют в трехмерных массивах Numpy. Я объясню свою задачу с двумя маленькими 1D массивами. У меня есть одно изображение: < /p>

Код: Выделить всё

img = [5, 6, 70, 80, 3, 4, 80, 90]
< /code>

и одна сегментированная и помеченная версия этого изображения: < /p>

labels = [0, 0, 1, 1, 0, 0, 2, 2]
Каждый номер в меток представляет объект в IMG . Оба массива имеют одинаковые размеры. Таким образом, в этом примере в IMG :

[5, 6, : , 80 , 3, 4,
,
, . будет 3 и 7 . В настоящее время я зацикливаю все этикетки, создаю версию IMG < /code>, которая содержит только объект, соответствующий текущей метке, и ищите максимальное значение: < /p>

for label in range(1, num_labels + 1):
imgcp = np.copy(img)
imgcp[labels != label] = 0
max_pos = np.argmax(imgcp)
max_coords = np.unravel_index(pos, imgcp.shape)
< /code>

Одна проблема с этим подходом заключается в том, что копирование IMG < /code> на каждом шаге имеет тенденцию создавать ошибки памяти. Я чувствую, что управление памятью должно предотвратить это, но есть ли более эффективная память и, возможно, быстрее к этой задаче?

Подробнее здесь: https://stackoverflow.com/questions/490 ... mpy-arrays
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»