Как найти фиксированное число (почти) фиксированных прямоугольников пропорций с opencv?

Я пишу простое программное обеспечение для отслеживания летучих мышей, и мне бы очень хотелось получить от экспертов opencv.

Изображение, которое у меня есть, выглядит примерно так:

sample image for fly tracking

Я использовал отслеживание с использованием kmeans и PIL/numpy, но я переписал все, чтобы использовать обнаружение blob в opencv. Отслеживание работает нормально, но я также хотел бы автоматизировать разделение ROI. Мне нужно найти каждый из 32 пазов, которые появляются на картинке, где живут мухи. Смотрите черный прямоугольник на изображении в качестве примера того, что я имею в виду.

Я думаю, что cornerHarris может быть тем, что мне нужно, но как я могу указать только пазы, а не каждый отдельный прямоугольник, найденный на изображении? Все эти канавки имеют пропорции примерно 10: 1.

Спасибо!

Ответ 1

Я не думаю, что cvCornerHarris даже близок к тому, что вам нужно.

Гораздо лучше начать эксперимент с демонстрацией, доступной по адресу: OpenCV-2.3.0/samples/cpp/squares.cpp. В этом методе используются Canny(), dilate() и findCountour().

Прямо из коробки эти демонстрационные выходы:

enter image description here

Я считаю, что с некоторыми трюками здесь и там вы можете начать свою вечеринку.