Я использую алгоритм сопоставления шаблонов для обнаружения экземпляров данного объекта на целевом изображении.Алгоритм создает тепловую карту, которая выглядит следующим образом:
До сих пор я использовал skimage.feature.peak_local_max
, чтобы найти локальные пики в тепловой карте, которая работала хорошо.
Теперь я хочу запустить сопоставление шаблона для различных поворотов шаблона, что даст мне несколько тепловых карт.Например:
Я сложил эти изображения друг на друга, чтобы создать трехмерный массив, и теперь я хочу найти самые высокие значения вместный район .Например, окрестность определяется шириной и высотой 15 пикселей (но включает все повороты).
Трехмерный массив имеет форму (высота, ширина, вращение) .Ось z соответствует повороту шаблона.
РЕДАКТИРОВАТЬ: Я сам нашел решение (с полезными комментариями от markuscosinus ) и опубликую этоздесь, в случае, если у кого-то есть такая же проблема:
Я посмотрел на реализацию scipy.ndimage.filters.maximum_filter
(которую можно найти здесь . Я немного дернул код, чтобы работать с моей формой данных и использовалfootprint = np.ones((size_neighborhood, size_neighborhood, nr_rotations))
.