Я работал с «горячими линиями» в OpenCV, и мне кажется, что я не могу получить более точное чтение строк, иногда есть две дублирующие строки друг на друге. Я посмотрел учебник на сайте opencv, но он дает похожий результат.
Чтобы удалить эти дубликаты, вам могут помочь две вещи:
theta
аргумент метода Линии Хафа. Например, используя π/180
приведет к нахождению линий, которые отличаются только на один градус по наклону. Вы можете использовать 5*π/180
найти линии в разрешении 5 градусов.Например, следующие строки обнаруживаются с использованием необработанного изображения и разрешения в 1 градус:
После небольшого размытия и использования 3-градусного разрешения вы можете получить результат, подобный следующему:
Изменяя порог, вы можете получить больше или меньше линий.
О подгонке кривых вы указали в разделе комментариев, да, вы можете подгонять кривые, но не методом грубых линий. Вам нужно найти параметрическое определение этой фигуры и попытаться запустить процедуру голосования, хотя вы и трансформируетесь. Единственная другая форма, которую opencv помогает вам найти, это круг.
Других решений пока нет …