Ответ Дэна, вероятно, лучший способ пойти. Поскольку неясно, нужен ли вам минимальный корпус или сплайн-фитинг в экстремальных точках, я просто предлагаю использовать его как вариант. Грубо говоря, определите, какой должен быть разумный минимальный радиус, затем сканируйте от 0 до 2 * pi, собирая точки максимального радиуса (до тех пор, пока это больше, чем выбранная вами минута) на каждом выборочном угле. Подгонка сплайна к этому набору точек.
Эта проблема может быть чрезвычайно сложной, как в this paper, BTW.
Редактировать: ответить на вопрос Дэна: У Matlab нет ничего встроенного, о котором я знаю; Я бы выбрал центр одним из центров: средние значения x
, y
- это стандартный метод. Если у вас есть теория относительно лежащего в основе распределения, например, 2D-гаусса, вы можете попробовать подгонять данные к функции распределения и интерполировать ее центроид.
Это интересный метод, имеет ли MATLAB что-то вроде этого заранее построенного? Также, как вы выбираете центр? – Dan
@ Dan - см. Правки –