Как выбрать пороговые значения для обнаружения края в openCV? - PullRequest
0 голосов
/ 20 мая 2011

Мое приложение для обнаружения монет. Я сделал большую часть этого с помощью OpenCv. Я использую CannyDetection и houghTransform для обнаружения кругов изображения.

Но я не получаю правильные круги монет, я думаю, что это может быть проблемой с передачей ThresoldValues ​​к cannyEdgeDetector. Может кто-нибудь сказать мне, как выбрать пороговые значения для обнаружения кругов монет.

Благодарю вас, Шринивас

Ответы [ 2 ]

0 голосов
/ 21 января 2014

Для выбора порогов нужно учесть много вещей ..

Во-первых, Canny использует два порога для hysteris и Подавление немаксимальных значений , один низкий порог и один высокий порог. Как правило, предпочтительно, чтобы верхний порог был выбран двойным от нижнего порога.

Нижний порог - Края, имеющие величину меньше этой величины, будут подавлены

Более высокая пороговая величина - Края, величина которых больше, чем будет сохранена

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

Выбор верхних и нижних порогов полностью зависит от вашей прочности края. Если у вас есть монеты с яркими границами, вы можете выбрать 80 и 160. Но если края монет имеют низкую прочность, то достаточно значений, таких как 30-50 для низкого порога и 60-100 для высокого порога,

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

0 голосов
/ 20 мая 2011

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

...