bookstein_svd.m

来自「椭圆拟合的相关介绍与数学运算方法」· M 代码 · 共 29 行

M
29
字号
function [z, a, b, alpha] = bookstein_svd (X, show);%BOOKSTEIN_SVD  Algebraic ellipse fit%% [z, a, b, alpha] = bookstein_svd (X, show{0});%% Approximate ellipse to points <X(i,1),X(i,2)>.% Invariant under euclidian transformation, see% BOOKSTEIN, "Fitting conic secions to scattered data", in% Computer graphics & image processing 9, 56-71 (1979).% unlike BOOKSTEIN, SVD is used for solution.%% X: given points <X(i,1),X(i,2)>% show: if (show == 1), test output%% z, a, b, alpha: parameters for ellipse found  if (nargin < 2), show = 0; end;  m      = size(X,1);  AA     = [ X(:,1) X(:,2) ones(size(X(:,1))) ...             X(:,1).^2  sqrt(2)*X(:,1).*X(:,2) X(:,2).^2];       [d, a] = clsq (AA, 3);  u = [a(1); sqrt(2)*a(2); a(3); d];  [z, a, b, alpha, err] = ellipse_params (u, show);  end % bookstein_svd

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?