Здравствуйте! Я хотел бы сделать простейшее преобразование Хафа для этой функции, чтобы выделить её на изображении. По аналогии с поиском линий я предположил, что результат преобразования - это максимум "аккумулятора" в пространстве параметров "A-B". Для этого я выразил функцию через B:
(1) исходная функция y=A^2*x / sqrt( A^2 * x^2 + B^2) (2) выражаем через B=sqrt( (A^4*x^4)/y^2 - A^2*x^2 )
Далее казалось бы всё просто: для каждого закрашенного пикселя на картинке (x,y) подставляем эти координаты в формулу (2) и пробегаем все значения A из интересующего диапазона, получая пары чисел A-B. Так для каждой точки изображения X-Y будет соответствовать некоторая кривая в координатах A-B. Точка с наибольшим количеством пересечений и есть параметры искомой функции. Подставляя найденные A и B в формулу (1) можем численно нарисовать кривую поверх растрового изображения.
Но у меня что-то функции (2), назову их "параболы", пересекаются только в начале координат, соответственно невозможно по этим данным найти параметры A-B - они всегда равны нулю A=0, B=0.
Подскажите, что не так!
p.s. этот же вопрос задал на другом сайте и с нетерпением жду ответов!
|