pdi clasificacion de galaxias usando matlab

21
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

Upload: marco-calderon

Post on 08-Jul-2015

209 views

Category:

Education


0 download

DESCRIPTION

Procesamiento Digital de Imagenes - clasificacion de galaxias usando matlab

TRANSCRIPT

Page 1: PDI clasificacion de galaxias usando matlab

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

Page 2: PDI clasificacion de galaxias usando matlab

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.

Page 3: PDI clasificacion de galaxias usando matlab

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.

Page 4: PDI clasificacion de galaxias usando matlab

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

Page 5: PDI clasificacion de galaxias usando matlab

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

Page 6: PDI clasificacion de galaxias usando matlab

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.

Page 7: PDI clasificacion de galaxias usando matlab

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.

Page 8: PDI clasificacion de galaxias usando matlab

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.

Page 9: PDI clasificacion de galaxias usando matlab

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.

Page 10: PDI clasificacion de galaxias usando matlab

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

Page 11: PDI clasificacion de galaxias usando matlab

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');

Page 12: PDI clasificacion de galaxias usando matlab

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)

Page 13: PDI clasificacion de galaxias usando matlab

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');

Page 14: PDI clasificacion de galaxias usando matlab

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 ..

Page 15: PDI clasificacion de galaxias usando matlab

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

Page 16: PDI clasificacion de galaxias usando matlab

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)];

Page 17: PDI clasificacion de galaxias usando matlab

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

Page 18: PDI clasificacion de galaxias usando matlab

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:

Page 19: PDI clasificacion de galaxias usando matlab

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.

Page 20: PDI clasificacion de galaxias usando matlab

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.

Page 21: PDI clasificacion de galaxias usando matlab

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