Область интересов с использованием OpenCV

Со ссылкой на следующее изображение кто-то может подсказать мне, как извлечь все лампочки (b1, b2, b3, b4, b5) и поместить их в отдельное изображение (b1.jpg, b2.jpg, b3.jpg, b4. JPG, B5.jpg).

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

Любой совет, как пойти на это с помощью OpenCV?

Спасибо и всего наилучшего,

Heshsham

3 ответа

Решение
  • Хорошо, если вы используете шаблоны, почему не разные шаблоны? Держите кучу шаблонов, сопоставьте их с изображением. То, что даст вам лучший матч, будет вашим кандидатом.
  • Второй способ сделать это, если я правильно понял проблему, это использовать функции SURF. SURF в значительной степени устойчив к перекосам, перспективам, поворотным изменениям, поэтому он наверняка поможет вам разобраться с луковицами.
  • Вот ссылка на хвастовство с использованием SURF. Просто и элегантно.

Если фон всегда белый, как в вашем примере, вы можете выполнить простую сегментацию на основе пороговых значений и отфильтровать полученные области по размеру, чтобы избавиться от черных артефактов.

+1 для Георга, в этом случае вам будет достаточно простого фильтра.

Чтобы получить большую точность, если ваши данные более сложны, чем то, что вы показываете, вы можете подумать об информации, которую вы обязательно получите для каждой лампы.

Я бы сказал, контур и желтая нижняя часть.

Используя эти две информации, я бы подумал о различении всех хромированных элементов и начал искать лампочку над ней. Выращивание региона может быть правильным решением, но долгим.

Другие вопросы по тегам