pdi clasificacion de galaxias usando matlab
Post on 08-Jul-2015
209 Views
Preview:
DESCRIPTION
TRANSCRIPT
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
1
INDICE
1. INTRODUCCION 2
2. MARCOTEORICO 2
Tipos de galaxias 2
a. Galaxias Elípticas 3
b. Galaxias Lenticulares 4
c. Galaxias Espirales 5
d. Galaxias Espirales Barradas 6
Algoritmo para la Detección de Imágenes 7
I. Introducción al Sistema Eigenfacas 7
II. Derivación de las Bases Eigenface 7
III. La simplificación de las Bases Eigenface Inicial 9
3. PROCESAMIENTO DE IMÁGENES 10
4. PRESENTACION DEL PROGRAMA 18
5. CONCLUSIONES 20
6. BIBLIOGRAFIA 20
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
2
1. INTRODUCCION
Sin duda alguna, la astronomía se destaca por ser una de las ramas más excitantes de la
física, ya que permite al ser humano satisfacer su deseo incontrolable de conocer el
entorno que lo rodea más allá de los límites imaginados. Cada vez que en los artículos
afines a esta disciplina aparecen nuevas imágenes de lejanos mundos descubiertos, o
galaxias tan distantes que se acercan al límite máximo de la historia del universo que se
puede conocer; surgen preguntas cada vez más descabelladas cuyas soluciones propuestas
solo podrán ser ratificadas o descartadas con nuevos resultados obtenidos de la
observación.
Esta cadena interminable de observaciones y formulación de hipótesis, hace posible la
constante renovación de la investigación que se adelanta en esta rama de la física,
contribuyendo no solo al conocimiento de los cuerpos que habitan el espacio exterior, su
naturaleza e interacciones; sino también al mismo desarrollo tecnológico de la especie
humana. Para citar alguno de estos aportes, es posible mencionar la gran influencia que ha
tenido la investigación astronómica en la aviación, tanto militar como comercial, después
de los viajes de las misiones Apolo a la Luna.
A pesar de lo anterior, la investigación astronómica en nuestro país es apenas incipiente,
pues se cuentan con muy pocos recursos instrumentales que permitan recopilar
información de los cuerpos celestes. En cuanto a nuestro país se refiere, la Universidad
Nacional San Luis de Gonzaga de Ica es la única institución de educación superior que
cuenta con elementos necesarios para estudiar y difundir la astronomía, tales como el
Planetario y el nuevo Observatorio Astronómico; pero no existen programas de formación
ni grupos de investigación que aprovechen estos instrumentos con el fin de aportar en el
desarrollo de esta ciencia.
El presente proyecto utiliza el procesamiento digital de imágenes para clasificar las
galaxias en sus distintos tipos con un objetivo fundamental. El primero consiste en generar
una interfaz gráfica que permita realizar el pre-procesamiento y la fotometría para la
clasificación de galaxias.
2. MARCO TEORICO
Tipos de Galaxias
Las galaxias tienen tres configuraciones básicas distintas: elípticas, espirales e irregulares.
Una descripción algo más detallada, basada en su apariencia, es la provista por la
secuencia de Hubble, propuesta en el año 1936. Este esquema, que sólo descansa en la
apariencia visual, no toma en cuenta otros aspectos, tales como la tasa de formación de
estrellas o la actividad del núcleo galáctico.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
3
a. Galaxias Elípticas
Una galaxia elíptica es un tipo de galaxia de la secuencia de Hubble que se caracteriza
por las siguientes propiedades físicas:
Ausencia o insignificante momento angular.
Ausencia o insignificante cantidad de materia interestelar (gas y polvo), sin
estrellas jóvenes, ausencia de cúmulos abiertos
Formada de estrellas antiguas, llamadas población II.
Las grandes galaxias elípticas suelen tener un sistema de cúmulos globulares,
núcleos dobles, y gran cantidad de galaxias satélites. Una posible
interpretación es el canibalismo galáctico.
La imagen tradicional de las galaxias elípticas las presenta como galaxias donde la
formación estelar terminó tras el estallido inicial, presentando ahora sólo viejas
estrellas.
Algunas observaciones recientes han encontrado cúmulos de estrellas jóvenes, azules
dentro de algunas galaxias elípticas, junto a otras estructuras que pueden explicarse
por fusión de galaxias. En la nueva visión, una galaxia elíptica es el resultado de un
largo proceso donde varias galaxias menores, de cualquier tipo, chocan y se fusionan
en una mayor.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
4
Por ejemplo, se sabe que nuestra Vía Láctea esta "digiriendo" un par de galaxias
menores en la actualidad.
b. Galaxias Lenticulares
Una galaxia lenticular es un tipo de galaxia intermedia entre una galaxia elíptica y una
galaxia espiral que en la Secuencia de Hubble se clasifica cómo S0. Las galaxias
lenticulares son con forma de disco, (al igual que las galaxias espirales) que han
consumido o perdido gran parte o toda su materia interestelar (como las galaxias
elípticas), y por tanto carecen de brazos espirales, aunque a veces existe cierta
cantidad de materia interestelar, sobre todo polvo.
El astrónomo Gerard de Vaucouleurs refinó posteriormente ésta secuencia y en ella se
clasifican cómo: S0 (sin barra central), SAB0 (rudimento de barra central), y SB0 (con
barra central). Además, también se habla de: E/S0 (galaxias elípticas que recuerdan a
una lenticular), S0- (galaxias lenticulares muy parecidas a una elíptica), S00 (galaxias
lenticulares con cierta estructura interna), y S0+ (polvo presente y en algunos casos
entroncando con las galaxias espirales); las dos clasificaciones -según presencia ó no
de barra central y según estructuras visibles o no- se combinan entre sí, al igual que las
que indican si existen anillos o no en ellas.
Las galaxias lenticulares suelen abundar en cúmulos de galaxias ricos, en detrimento
de las galaxias espirales, y al parecer fueron en tiempos galaxias espirales que
perdieron su gas por rozamiento con el gas intergaláctico caliente que llena el espacio
intergaláctico y/o por interacciones gravitatorias con otras galaxias; dos formas
intermedias entre ambas son las galaxias espirales anémicas, con menos materia
interestelar y formación estelar que una galaxia espiral equivalente y las galaxias
espirales pasivas, con estructura espiral pero con muy poca o ninguna formación
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
5
estelar; en otros casos -galaxias lenticulares situadas no en cúmulos galácticos ricos o
aisladas-, pueden haberse convertido en eso al haber agotado su materia interestelar.
Sin embargo, la génesis de las galaxias lenticulares, en particular de las más masivas,
sigue siendo un problema abierto; de hecho, por ejemplo también se ha sugerido que
la mayoría de las galaxias lenticulares pueden haber sido cómo son ahora desde su
nacimiento -experimentando de cuando en cuando brotes de formación estelar-, en
vez de galaxias espirales que han perdido su medio interestelar.
c. Galaxias Espirales
Una galaxia espiral es un tipo de galaxia de la secuencia de Hubble que se caracteriza
por las siguientes propiedades físicas:
Tiene un momento angular total considerable. Véase la relación Tully-Fisher.
Está compuesta por una concentración de estrellas central (bulbo) rodeada
por un disco.
El disco es plano (con posibilidades de alabeo) y está formado por materia
interestelar (gas y polvo), estrellas jóvenes de Población I (alta metalicidad) y
cúmulos abiertos.
El bulbo es similar a una galaxia elíptica, conteniendo numerosas estrellas
antiguas, llamadas de Población II y con baja metalicidad, y normalmente un
agujero negro supermasivo en el centro.
Las galaxias espirales deben su nombre a los brazos luminosos con formación estelar
dentro del disco que se prolonga —más o menos logarítmicamente— desde el núcleo
central. Aunque a veces son difíciles de percibir, estos brazos las distinguen de las
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
6
galaxias lenticulares, que presentan una estructura de disco pero sin brazos espirales.
El disco de las galaxias espirales suele estar rodeado por grandes aureolas esferoides
de estrellas de Población II, muchas de las cuales se concentran en cúmulos globulares
que orbitan alrededor del centro galáctico. Esta aureola es conocida como halo.
d. Galaxias Espirales Barradas
Una galaxia espiral barrada es una galaxia espiral con una banda central de estrellas
brillantes que abarca de un lado a otro de la galaxia. Los brazos espirales parecen
surgir del final de la "barra" mientras en las galaxias espirales parecen surgir del núcleo
galáctico. Las barras son relativamente comunes: hasta dos tercios de las galaxias
espirales contienen una. Dichas barras generalmente afectan tanto al movimiento de
las estrellas como al del gas interestelar dentro de la galaxia espiral, y pueden afectar
también a los brazos espirales.
Edwin Hubble clasificó a este tipo de galaxias espirales como SB (Spiral Barred en
inglés) en su Secuencia de Hubble, dividiéndolas en tres categorías dependiendo de lo
abiertos que tengan los brazos espirales. Las de tipo SBa tienen los brazos fuertemente
unidos y una gran protuberancia central, las galaxias de tipo SBb son intermedias entre
las ésas y las de tipo SBc -las cuales tienen los brazos muy sueltos-, y finalmente las
SBd aún más, con un núcleo casi inexistente. Un quinto tipo (SBm), se creó
posteriormente para describir una galaxia espiral irregular, como las Nubes de
Magallanes, que inicialmente fueron clasificadas como galaxias irregulares pero en
donde posteriormente se encontraron estructuras de espirales barradas.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
7
Nuestra galaxia, la Vía Láctea, es espiral de este tipo, con una clasificación en la
secuencia de Hubble Sbc (posiblemente SBbc).
Algoritmo para la Detección de Imágenes
I. Introducción al Sistema Eigenface
El sistema de reconocimiento de cara eigenface se puede dividir en dos segmentos
principales: la creación de la base eigenface y reconocimiento, o la detección, de
una nueva imagen.
II. Derivación de las Bases Eigenface
La técnica eigenface es una solución potente y sencilla al dilema de reconocimiento
imagenes. De hecho, es realmente la manera más intuitiva para clasificar una cara.
Como hemos visto, las técnicas antiguas se centró en las características particulares
de la cara. La técnica eigenface utiliza mucha más información al clasificar las caras
sobre la base de los patrones generales de la cara. Estos patrones incluyen, pero no
están limitados a, las características específicas de la cara. Mediante el uso de más
información, el análisis eigenface es naturalmente más eficaz que la característica
basada en el reconocimiento facial.
Eigenfaces son básicamente nada más que vectores de la base para las caras reales.
Esto puede ser directamente relacionado con uno de los conceptos más
fundamentales de la ingeniería electrónica: Análisis de Fourier. Análisis de Fourier
revela que una suma de sinusoides ponderados en diferentes frecuencias puede
recomponer una señal perfectamente, De la misma manera, una suma ponderada
de eigenrostros perfectamente puede reconstruir la cara de una persona específica.
La determinación de lo son Eigenfaces es el quid de esta técnica.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
8
Antes de encontrar los Eigenfaces, primero tenemos que reunir una serie de
imágenes de la cara. Estas imágenes de la cara convertida en nuestra base de datos
de caras conocidas. Más tarde se determinará si existe o no una cara desconocida
coincide con alguna de estas caras conocidas. Todas las imágenes de la cara deben
ser del mismo tamaño (en pixeles), y para nuestros propósitos, deben ser en escala
de grises, con valores que van de 0 a 255. Cada imagen de la cara se convierte en un
Γn vector de longitud N (N = ImageWidth * imageheight). Los juegos de la cara más
útiles tienen varias imágenes por persona. Esto aumenta enormemente la precisión,
debido a la mayor información disponible en cada individuo conocido. Vamos a
llamar a nuestra colección de caras "espacio de la cara." Este espacio es de
dimensión N.
Lo siguiente que necesitamos calcular es la media de imágenes en el espacio de
imágenes. Aquí M es el número de caras:
A continuación, calculamos la diferencia de cada imagen de la media:
Utilizamos estas diferencias para calcular una matriz de covarianza (C) para nuestra
base de datos. La covarianza entre dos conjuntos de datos pone de manifiesto hasta
qué punto los conjuntos se correlación.
Donde y = pixel “i” de la imagen “n”
Los eigenrostros que estamos buscando son simplemente los vectores propios de C.
Sin embargo, puesto que C es de dimensión N (el número de píxeles en las
imágenes), la solución para los eigenrostros se pone feo muy rápidamente. El
Reconocimiento de imágenes por Eigenface no sería posible si tuviéramos que hacer
esto. Aquí es donde la magia detrás del sistema eigenface sucede.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
9
III. La simplificación de las Bases Eigenface Inicial
Con base en una técnica estadística conocida como análisis de componentes
principales (PCA), se puede reducir el número de vectores propios de nuestra matriz
de covarianza de N (el número de píxeles en nuestra imagen) a M (el número de
imágenes en nuestra base de datos). Esto es enorme! En general, la PCA se utiliza
para describir un espacio de dimensión grande, con un conjunto relativamente
pequeño de vectores. Es una técnica popular para encontrar patrones en los datos
de alta dimensión, y se utiliza comúnmente en el reconocimiento de rostros y
compresión de la imagen.
PCA nos dice que, puesto que sólo tienen M imágenes, sólo tenemos M no triviales
eigenvectors. Podemos resolver para estos vectores propios tomando los vectores
propios de una nueva matriz de M x M:
Debido a que el truco matemático siguiente:
Donde vi es un vector propio de L. A partir de esta sencilla prueba, podemos ver que
Avi es un vector propio de C.
Los vectores propios M de L se utiliza finalmente para formar los vectores propios M
ui de C que forman nuestra base eigenface:
Resulta que sólo M-K eigenrostros son realmente necesarias para producir una base
completa para el espacio de la cara, donde k es el número de individuos únicos en el
conjunto de caras conocidas.
Al final, se puede obtener una reconstrucción decente de la imagen utilizando sólo
unas pocas Eigenfaces (M '), donde M' por lo general oscila entre 0,1 M a 0,2 M.
Estos corresponden a los vectores con los más altos valores propios y representan la
varianza más espacio dentro de la cara.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
10
3. PROCESAMIENTO DE IMAGENES
Se desarrollara el procesado de la imágenes utilizando la herramienta GUIDE de Matlab,
para obtener un espacio grafico fácil de manejar y se proporcionara una base de datos con
los distintos tipos de galaxias, con la cual se pueda hacer la comparación.
A continuación se pone el código que se utilizó para el procesamiento de las imágenes:
function varargout = galaxy_recognition_guide(varargin)
gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn',
@galaxy_recognition_guide_OpeningFcn, ... 'gui_OutputFcn', @galaxy_recognition_guide_OutputFcn,
... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end
if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end
function galaxy_recognition_guide_OpeningFcn(hObject, eventdata, handles,
varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = galaxy_recognition_guide_OutputFcn(hObject,
eventdata, handles)
varargout{1} = handles.output;
function axes1_CreateFcn(hObject, eventdata, handles)
% hObject handle to axes1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns
called
% Hint: place code in OpeningFcn to populate axes1
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
11
function popupmenu1_Callback(hObject, eventdata, handles) b=get(handles.popupmenu1,'value'); set(handles.text1,'string',b) switch b case 1 cd ('s1'); axes(handles.axes1) a=imread('1.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 2 cd ('s1'); axes(handles.axes1) a=imread('2.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 3 cd ('s1'); axes(handles.axes1) a=imread('3.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 4 cd ('s1'); axes(handles.axes1) a=imread('4.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 5 cd ('s1'); axes(handles.axes1) a=imread('5.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 6 cd ('s1'); axes(handles.axes1) a=imread('6.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 7 cd ('s1'); axes(handles.axes1) a=imread('7.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 8 cd ('s1'); axes(handles.axes1) a=imread('8.pgm');
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
12
imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 9 cd ('s1'); axes(handles.axes1) a=imread('9.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 10 cd ('s1'); axes(handles.axes1) a=imread('10.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 11 cd ('s2'); axes(handles.axes1) a=imread('1.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 12 cd ('s2'); axes(handles.axes1) a=imread('2.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 13 cd ('s2'); axes(handles.axes1) a=imread('3.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 14 cd ('s2'); axes(handles.axes1) a=imread('4.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 15 cd ('s2'); axes(handles.axes1) a=imread('5.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 16 cd ('s2'); axes(handles.axes1) a=imread('6.pgm'); imshow(a)
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
13
title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 17 cd ('s2'); axes(handles.axes1) a=imread('7.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 18 cd ('s2'); axes(handles.axes1) a=imread('8.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 19 cd ('s2'); axes(handles.axes1) a=imread('9.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 20 cd ('s2'); axes(handles.axes1) a=imread('10.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 21 cd ('s3'); axes(handles.axes1) a=imread('1.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 22 cd ('s3'); axes(handles.axes1) a=imread('2.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 23 cd ('s3'); axes(handles.axes1) a=imread('3.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 24 cd ('s3'); axes(handles.axes1) a=imread('4.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red');
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
14
cd .. case 25 cd ('s3'); axes(handles.axes1) a=imread('5.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 26 cd ('s3'); axes(handles.axes1) a=imread('6.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 27 cd ('s3'); axes(handles.axes1) a=imread('7.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 28 cd ('s3'); axes(handles.axes1) a=imread('8.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 29 cd ('s3'); axes(handles.axes1) a=imread('9.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 30 cd ('s3'); axes(handles.axes1) a=imread('10.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 31 cd ('s4'); axes(handles.axes1) a=imread('1.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 32 cd ('s4'); axes(handles.axes1) a=imread('2.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd ..
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
15
case 33 cd ('s4'); axes(handles.axes1) a=imread('3.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 34 cd ('s4'); axes(handles.axes1) a=imread('4.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 35 cd ('s4'); axes(handles.axes1) a=imread('5.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 36 cd ('s4'); axes(handles.axes1) a=imread('6.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 37 cd ('s4'); axes(handles.axes1) a=imread('7.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 38 cd ('s4'); axes(handles.axes1) a=imread('8.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 39 cd ('s4'); axes(handles.axes1) a=imread('9.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. case 40 cd ('s4'); axes(handles.axes1) a=imread('10.pgm'); imshow(a) title('Buscar','FontWeight','demi','Fontsize',13,'color','red'); cd .. end
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
16
function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function pushbutton1_Callback(hObject, eventdata, handles)
%---------------------------------Codigo--------------------------------- w=load_database(); t=str2num(get(handles.text1,'string'));
%% Initializations % We randomly pick an image from our database and use the rest of the % images for training. Training is done on 40 pictues.
ri=t; r=w(:,ri); % r contains the image we later on will use to
test the algorithm v=w(:,[1:end]); % v contains the rest of the 40 images.
N=20; %% Subtracting the mean from v O=uint8(ones(1,size(v,2))); m=uint8(mean(v,2)); % m is the maen of all images. vzm=v-uint8(single(m)*single(O)); % vzm is v with the mean removed.
%% Calculating eignevectors of the correlation matrix
L=single(vzm)'*single(vzm); [V,D]=eig(L); V=single(vzm)*V; V=V(:,end:-1:end-(N-1)); % Pick the eignevectors corresponding
to the 10 largest eigenvalues.
%% Calculating the signature for each image cv=zeros(size(v,2),N); for i=1:size(v,2); cv(i,:)=single(vzm(:,i))'*V; % Each row in cv is the signature for
one image. end
%% Recognition % Now, we run the algorithm and see if we can correctly recognize the
Image.
p=r-m; % Subtract the mean s=single(p)'*V; z=[]; axes(handles.axes2) for i=1:size(v,2) z=[z,norm(cv(i,:)-s,2)];
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
17
if(rem(i,20)==0),imshow(reshape(v(:,i),112,92)),end; drawnow; end
[a,i]=min(z); % obtenemos el vector de la imagen
if (i>0 && i<10) j=i+1; if (i==10) j=i-1; end imshow(reshape(v(:,j),112,92)); %Recomponemos la imagen para poder
ser mostrada title('Galaxia
Eliptica','FontWeight','demi','Fontsize',13,'color','blue'); xlabel({'Preseta las siguientes caracteristicas:';' ';'•Ausencia o
insignificante momento angular';'•Ausencia o insignificante cantidad de
materia interestelar';'•Formada de estrellas antiguas, llamadas población
II';'•Las grandes galaxias elípticas suelen tener un sistema de cúmulos
globulares,';'núcleos dobles, y gran cantidad de galaxias satélites'}); end
if (i>10 && i<21) j=i+1; if (i==8) j=i-2; end if (i==20) j=i-1; end imshow(reshape(v(:,j),112,92)); %Recomponemos la imagen para poder
ser mostrada title('Galaxia
Lenticular','FontWeight','demi','Fontsize',13,'color','blue'); xlabel({'Una galaxia lenticular es un tipo de galaxia intermedia
entre una galaxia elíptica y una galaxia espiral';'Las galaxias
lenticulares son con forma de disco';'que han consumido o perdido gran
parte o toda su materia interestelar'}); end
if (i>20 && i<31) j=i+1; if (i==30) j=i-1; end imshow(reshape(v(:,j),112,92)); %Recomponemos la imagen para poder
ser mostrada title('Galaxia
Espiral','FontWeight','demi','Fontsize',13,'color','blue'); xlabel({'Preseta las siguientes caracteristicas:';'•Tiene un momento
angular total considerable';'•Está compuesta por una concentración de
estrellas central rodeada por un disco';'• El disco es plano y está
formado por materia interestelar';'•El bulbo es similar a una galaxia
elíptica'}); end
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
18
if (i>30 && i<41) j=i+1; if (i==40) j=i-1; end imshow(reshape(v(:,j),112,92)); %Recomponemos la imagen para poder
ser mostrada title('Galaxia Espiral
Barrida','FontWeight','demi','Fontsize',13,'color','blue'); xlabel({'Una galaxia espiral barrada es una galaxia espiral con una
banda central';'de estrellas brillantes que abarca de un lado a otro de
la galaxia';'Los brazos espirales parecen surgir del final de la
"barra"';'mientras en las galaxias espirales parecen surgir del núcleo
galáctico';'son relativamente comunes hasta dos tercios de las galaxias
espirales contienen una barra'}); end
4. PRESENTACION DEL PROGRAMA
Se tiene una base de datos de los 4 principales tipos de galaxias existentes, como grandes grupos, de cada tipo de galaxia se tiene 10 imágenes diferentes, el programa carga las imágenes en una sola matriz, y realiza la comparación de la imagen escogida con el resto de las imágenes cargadas en la matriz, al encontrar el parecido, muestra la imagen y una pequeña descripción donde indica el tipo de galaxia y sus principales características. En la siguiente imagen se muestra un ejemplo para el tipo de galaxia elíptica:
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
19
Acontinuacion se presenta otro ejemplo con, para una espiral barrada:
Para la comparación, se puede escoger entre 40 imágenes de galaxia usando la pestaña donde dice galaxia, esas 40 imágenes vienen a ser nuestra base de datos para la comparación.
METODO PARA CARGAR LA BASE DE DATOS Para cargar la base de datos se utiliza el programa “load_database.m”, el cual trabaja de la siguiente manera: El programa carga las imágenes definidas para las base de datos, transformando las imágenes en vectores columnas, de esta forma el programa cargara las imágenes como columnas (una columna por imagen) y lo siguiente q hará es acumularlas a una base de datos, en el cual tendríamos que cada columna representa una imagen, lo cual nos facilitara para realizar el procesado como se explicó en el planteamiento del algoritmo.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
20
5. CONCLUSIONES
El algoritmo usado (eigenfaces) es muy útil, poderoso y simple para realizar comparaciones entre imágenes. Brindándonos un buen grado de exactitud debido al análisis matemático que utiliza cómo se explicó arriba.
El análisis de las imágenes por el algoritmo de eigenfaces, requiere que todas las imágenes de la base de datos así como la que se va a comparar, tengan la misma resolución, pues este carga todas las imágenes en una sola matriz y se ayuda por la simetría, con respecto de las dimensiones de las imágenes.
Además este algoritmo trabaja con images en escala de gresis con un nivel que va de 0 a 255, esto lo hace eficiente pues reduce la complejidad de las operaciones para la comparación.
CLASIFICACION DE GALAXIAS USANDO MATLAB
PROCESAMIENTO DIGITAL DE IMAGENES
21
6. BIBLIOGRAFIA
http://cnx.org/content/m12531/latest/ http://www.mathworks.com/matlabcentral/fileexchange/16760 http://www.surastronomico.com/tutoriales_procesamiento.html http://www.astromia.com/universo/clasegalaxias.htm
top related