Está en la página 1de 5

AJUSTE PARA UNA ELIPSE

Santiago Alberto Ramirez, Daniel Leonardo Parada, María Camila Vasquez.


Universidad Tecnológica de Pereira.
Pereira, Risaralda.
Resumen – Mediante este trabajo se pretende realizar un código
elaborado en Matlab donde se muestra un método basado con
coordenadas rectangulares en el plano con los cuales se obtendrán
unos puntos dispersos que presentan una distribución de una función
cónica y a partir de estos se utilizara una ecuación encontraremos los
parámetros de la ecuación general y se realizara un ajuste para
determinar simultáneamente los mejores ajustes a la cónica trabajada.

Palabras claves – Cónicas, Código, Elipse, parámetro.

Abstract— Through this work we intend to make a code


elaborated in Matlab where a method based on rectangular
coordinates is shown in the plane with which we will obtain 1.5. Con P aplicamos y luego a esto se le aplica la función
scattered points that have a distribution of a conical function and USV de la cual se obtendrá una matriz de U,S,V y tomamos la
from these we will use an equation to find the parameters of the columna V a la cual se le hallara la transpuesta con los que se
general equation and an adjustment will be made to
simultaneously determine the best adjustments to the conic
encuentran los parámetros W [A B C D E F] de la elipse.
worked.
1.6. Con los Parametros se realiza los nuevos datos de
Keywords- Conics, Code, Ellipse. Parameter. dispersion y se grafican.

I. INTRODUCTION 1.7. Se crea una function con la se genera ruido para los datos
aleatorios y se realiza la grafica correspondiente
Una forma de definir una elipse es cortando un cono con un
plano en ángulo el cual tiene un ángulo más pequeño que la
pendiente del cono, la curva de puntos donde el plano y el cono
se cortan forman una elipse, por eso las elipses pueden ser III. RESULTADOS
descritas como secciones cónicas. Una elipse no es solo una
curva, es una familia de curvas que van desde el circulo más
perfecto hasta algo infinitamente estirado.
El ajuste de cónicas es una tarea de gran alcance, para el
reconocimiento de patrones en general y procesamiento de
imágenes este acomodamiento en la elipse ha sido de gran
importancia ya que con esto se estudia de manera rigurosa las IV. CODIGO EN MATLAB
curvas que se obtienen al cortar un cono con diversos planos y
clc;
de esta manera poder clasificarla.
clear all;
close all;

II. PROCEDIMIENTO %% Generador de datos para elipse


n=10000;%Cantidad de pares ordenados
(x,y) que se desean crear para la base de
1.1 Haciendo uso de Matlab se generan n=10000 datos datos
aleatorios en X. a=2000;%Parámetro elipse
1.2 Luego a partir de estas coordenadas usamos la siguiente b=3000;%Parámetro elipse
ecuación c=10000;%Parámetro elipse
La cual corresponde a la de una elipse y así obtenemos a Y. x = randi([-200000,200000],1,n);%%Función
generadora de x para base de datos

for i=1:n
y(i) = sqrt((c-(x(i)^2)/a^2))*b
De donde es necesario ponerle parámetros de tal forma que los end
puntos me generen una elipse.
%% Graficando dispersión de base de datos
1.3. Al tener nuestra base de datos se realiza un gráfico de plot(x,y,'.k');
dispersión de datos la cual tendrá la forma de la cónica a hold on;
realizar (elipse). Plot(x,y*(-1),'.k');
1.4. Al tener los datos los cuales corresponden a las %Xi^2=M;
coordenadas rectangulares (X, Y) realizamos la siguiente %Yi^2=N;
Matriz: %XiYi=O;
%Xi=P; r=5000;%%cantidad de ruido
%Yi=Q;
%Unos=Ones; % w=randi([-r,r],1,n);
% w=w';
%%Creacion de matriz portadora de datos % for i=1: n
en forma canónica % xr(i)= x(i)+w(i);
% yr(i)= y(i)+w(i);
x=x'; % end
y=y'; %
M=(x.^2); % figure(1)
N= (y. ^2); % plot(xr,yr,'.k');
% hold on;
for i=1:n % plot(xr,yr*(-1),'.k');
O(i)=(x(i)*y(i)); %
Unos(i)=ones(size(n)); % xr=xr';
End % yr=yr';
% M= (xr.^2);
% N= (yr.^2);
O=O'; % for i=1:n
Unos=Unos'; % O(i)=(xr(i)*yr(i));
P=x; % Unos(i)=ones(size(n));
Q=y; % end
% O=O';
T=[M,N,P,Q,O,Unos]; %Matriz Canónica % Unos=Unos';
% P=xr;
[U,S,V]=svd(T);%Función para hallar los % Q=yr;
parámetros de la ecuación elíptica %
% T= [M,N,P,Q,O,Unos];
R=V';%Vector contenedor de parámetros %
% [U,S,V]=svd(T);
for i=1:6 %
Const(i)=R(i,6); % R=V';
end %
% for i=1:6
Const=const'; % const(i)=R(i,6);
% end
A=const (1); % const=const';
B=const(2);
C=const (3);
D=const (4);
E=const (5);
F=const (6);

% horizontal radius
% vertical radius

%%Graficando nuevos datos con parámetros


obtenidos
x0=0; % x0,y0 elipse (centre coordinates) V. CONCLUSIONES.
y0=0;
-
t=-pi:0.01:pi;
g=x0+A*cos(t); -
h=y0+B*sin(t); -
figure(2)
plot(g,h)

%% Funcion Generadora de ruido para los VI. BIBLIOGRAFIA .


datos
[1] W. Gander. Least squares with a quadratic constraint. [3] P. L. Rosin. Ellipse fitting by accumulating five-point fits.
Numerische Mathematik, 36:291-307, 1981. Pattern Recognition Letters, 14:661-669, 1993.

[2] P. D. Sampson. Fitting conic sections to "very scattered" [4] A Buyer’s Guide to conic fitting. Andrew F. Fitzgibbon
data. Computer Graphics and Image Processing, 18:97-108, and Robert B. Fisher
1992.

También podría gustarte