Идентификация изогнутых и прямых объектов в OpenCV

У меня есть следующее изображение. Моя задача состоит в том, чтобы исследовать форму червей (заключенных в прямоугольники) и классифицировать их как мертвых/живых - палочковидные (прямые) мертвые, а изогнутые - живые.

введите здесь описание изображения

Я использовал адаптивное пороговое значение для исходного изображения, нарисовал контуры и ограничивающие прямоугольники, используя OpenCV 3.1.0 в Python 2.7.1. Что было бы самым простым и, возможно, эффективным способом достижения вышеуказанной цели.

(isConvex() определенно не работает: p)


person singhuist    schedule 09.01.2017    source источник
comment
Проверьте, можете ли вы найти Hough lines в каждом контуре прямоугольника.   -  person Jeru Luke    schedule 09.01.2017


Ответы (2)


Взгляните на дефекты выпуклости

person Martin Beckett    schedule 09.01.2017
comment
Полезную ссылку, такую ​​как ваша, можно добавить в раздел комментариев. Если у вас нет аргументов для доказательства, пожалуйста, не используйте раздел ответов. - person Jeru Luke; 09.01.2017

Один из подходов состоит в том, чтобы сравнить длину контура (или червя) с расстоянием по диагонали ограничивающей рамки (расстояние от верхнего левого угла до нижнего правого угла). Прямые будут иметь длину ближе к этому расстоянию, чем изогнутые.

person brad    schedule 09.01.2017