Я занимался анализом производительности различных детекторов краев (Canny, Sobel и Roberts). Matlab дает нам функцию edge
, которая имеет в качестве одного из своих входов пороговое значение параметра. Я дал всем им одинаковый порог (= 0,1) (Matlab автоматически сгенерировал нижний порог для детектора Кэнни). Результат, учитывая код, который я написал, был:
(Игнорируется детектор LoG, я думаю, что могу интерпретировать эти результаты).
После этого я протестировал те же фильтры, но с другим порогом (= 0,8, что дало 0,32 нижнего порога для детектора Кэнни). Однако теперь только Canny обнаруживает границы, связанные с более сильными краями (более сильные градиенты, связанные с границами, разделяющими структуры с более высокой контрастностью):
! показывает те же результаты для более высокого порога, некоторые
методы не находят ребер
Я не могу понять эти результаты, потому что, если Кэнни обнаруживает более сильные границы, а Собел более чувствителен к более сильным границам (как мы видели для порога = 0,1, где он почти только обнаруживает резкие изменения интенсивности), то почему Собель не кажется рассчитать оценку градиента, который сопоставим с данным Canny?
С этим возникает другой вопрос: что на самом деле означает пороговое значение для Кенни, Собеля и Робертса? Я бы сказал, что это значение величины градиента, каким-то образом нормализованное, потому что оно должно принадлежать [0,1] (что я тоже не понимаю, нормализовано относительно чего?)