Определить границу частично скрытого эллипса с известным центром (OpenCV)

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

Преимущества:

  1. Эллипс всегда виден

  2. Точка вблизи центра эллипса известна

  3. Эллипс всегда черный (значение = [0, 50] на 8 битах)

Неприятности:

  1. Белые пятна (значение = [220, 255]) могут появиться в эллипсе (не снаружи)

  2. Черные артефакты (значение = [0, 80]) могут скрывать от 0% до 50% эллипса и белых пятен (но центр все еще известен)

Вот 4 примера изображений, которые представляют различные ситуации, которые могут возникнуть:

Диаграммы

Я попробовал несколько алгоритмов (круг Хофа, обнаружение эллипса, …), но ни один из них не справился со всеми различными ситуациями. Более того, они не пользуются преимуществами известного центра.
Все предложения приветствуются!

0

Решение

Попробуйте метод RANSAC, это позволит вам избежать шумов и точно подогнать эллипс. У эллипса есть 2 фокуса, вы можете найти их, зная свое уравнение эллипса, а затем найти середину между ними. Это будет ваш эллипс центром масс.

Пример кода для подгонки эллипса RANSAC: https://github.com/seisgo/EllipseFit

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector