Короткий ответ
cvCanny используется для обнаружения краев, а также для повышения контрастности и удаления шума на изображении.
HoughLines, который использует Hough Transform, используется, чтобы определить, являются ли эти края линиями или нет. Hough Transform требует, чтобы края были хорошо обнаружены, чтобы быть эффективными и обеспечивать значимые результаты.
Длинный ответ
Ограничения Преобразования Хафа более подробно описаны в Википедии.
Эффективность преобразования Хафа зависит от четкости ячейки накопленного пикселя, например прямой контраст между пикселем и окружающими его соседями или, если используется область маски, область пикселя и его окружающие области. Если бы все пиксели имели одинаковые накопленные значения, ничто не выделялось бы как линия или круг. Это приводит к уменьшению цвета (цвет до оттенков серого, от оттенков серого до черно-белого), чтобы увеличить контракт.
Количество параметров в преобразовании Хафа также увеличивает разброс голосов в ячейках пикселей и увеличивает сложность преобразования, что означает, что обычно с помощью него надежно обнаруживаются только линии или круги, поскольку они имеют менее 3 параметров.
Перед запуском Hough Transform необходимо тщательно определить кромки, в противном случае эффективность снижается. Кроме того, зашумленные изображения не очень хорошо работают с преобразованием Хафа, если только шум не был удален до того, как это было сделано.