После моего предыдущего вопроса о поиске пальцев в каждой лапе, я начал загружать другие измерения, чтобы увидеть, как он будет задерживаться. К сожалению, я быстро столкнулся с проблемой с одним из предыдущих шагов: распознавание лап.
Вы видите, мое доказательство концепции в основном принимало максимальное давление каждого датчика с течением времени и начинало искать сумму каждой строки, пока не найдет на это!= 0.0. Затем он делает то же самое для столбцов и как только он найдет более двух строк с нулевыми значениями. Он сохраняет минимальные и максимальные значения строк и столбцов для некоторого индекса.
Как вы можете видеть на рисунке, в большинстве случаев это работает очень хорошо. Тем не менее, для этого подхода есть много недостатков (кроме примитивного):
-
Люди могут иметь "полые ноги", что означает, что в пределах самого участка есть несколько пустых строк. Поскольку я боялся, что это может произойти и с (большими) собаками, я ждал по крайней мере 2 или 3 пустых рядов, прежде чем отрезать лапу.
Это создает проблему, если другой контакт сделан в другом столбце, прежде чем он достигнет нескольких пустых строк, тем самым расширяя область. Я полагаю, что могу сравнить столбцы и посмотреть, превышают ли они определенное значение, они должны быть отдельными лапами.
-
Проблема ухудшается, когда собака очень маленькая или идет более высоко. Что происходит, так это то, что передние лапы еще соприкасаются, а задние лапы только начинают контактировать в той же области, что и передняя лапа!
С помощью моего простого script он не сможет разделить эти два, потому что он должен будет определить, какие кадры этой области принадлежат этой лапе, в то время как в настоящее время мне нужно будет смотреть только на максимальные значения все кадры.
Примеры того, где он начинает идти не так:
Итак, теперь я ищу лучший способ распознавания и разделения лап (после чего я пойду на вопрос о том, какая именно лапа!).
Update:
Я старался получить ответ Джо (удивительный!), но у меня возникают трудности с извлечением фактических данных лапы из моих файлов.
Кодированные_палы показывают мне все разные лапы при приложении к максимальному изображению давления (см. выше). Тем не менее, решение проходит через каждый кадр (чтобы отделить перекрывающиеся лапы) и устанавливает четыре атрибута Rectangle, такие как координаты или высота/ширина.
Я не могу понять, как взять эти атрибуты и сохранить их в некоторой переменной, которую я могу применить к данным измерений. Так как мне нужно знать каждую лапу, каково ее расположение во время рамок и соединяйте это с той лапой (передняя/задняя, левая/правая).
Итак, как я могу использовать атрибуты Rectangles для извлечения этих значений для каждой лапы?
У меня есть измерения, которые я использовал в настройке вопроса в моей открытой папке Dropbox (пример 1, пример 2, пример 3). Для всех желающих я также создал блог, чтобы вы были в курсе: -)