Обнаружить полукруг в OpenCV

Я пытаюсь обнаружить полные круги и полукруги на изображении.

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

Я попытался изменить параметры в HoughCircles, но результаты не согласованы, так как они варьируются в зависимости от освещения и положения окружностей на изображении. Я принимаю или отклоняю круг в зависимости от его размера. Таким образом, результат не является приемлемым. Также у меня есть длинный список «приемлемых» кругов, поэтому мне нужно немного учесть в параметрах HoughCircle. Что касается полных кругов, это легко - я могу просто найти "округлость" контура. Проблема полукругов!

Пожалуйста, найдите отредактированное изображение, прежде чем преобразовать

Ответы на вопрос(5)

Ваш ответ на вопрос