You are on page 1of 24

UNIVERSIDAD NACIONAL DEL ALTIPLANO

FACULTAD DE INGENIERIA MECANICA ELECTRICA,


ELECTRONICA Y SISTEMAS
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

TRABAJO:
DETECCIN DE ERRORES EN IMGENES FOTOGRFICAS Y
CORRECCIN MEDIANTE PROCESAMIENTO DE IMAGEN
UTILIZANDO SOFTWARE JAVA.
PRESENTADO POR:
EYNER CALCINA QUISPE
CURSO: PROCESAMIENTO DIGITAL DE SEALES
SEMESTRE: X

PUNO PERU
2013

INDICE
TITULO ........................................................................................................................................ 3
CAPITULO I................................................................................................................................. 4
1.1

INTRODUCCIN: ........................................................................................................... 4

2.1

ANTECEDENTES: ........................................................................................................... 4

3.1

PLANTEAMIENTO DEL PROBLEMA .................................................................................... 5

4.1

JUSTIFICACION DEL PROBLEMA ........................................................................................ 5

5.1

HIPOTESIS: ......................................................................................................................... 5

6.1

DEFINICION DE VARIABLES:............................................................................................... 5

Variables independientes:......................................................................................................... 5
Variables dependientes:............................................................................................................ 5
7.1

OBJETIVOS DEL TRABAJO .................................................................................................. 6

Objetivo General: ...................................................................................................................... 6


Objetivos especficos: ................................................................................................................ 6
8.1

TIPO DE INVESTIGACION: .................................................................................................. 6

9.1

MARCO TEORICO:.............................................................................................................. 6

PROCESAMIENTO DIGITAL DE IMGENES................................................................................. 6


PROCESO DE FILTRADO ...................................................................................................... 6
Filtrado en el dominio de la frecuencia................................................................................. 7
TIPOS:....................................................................................................................................... 8
QU ES JAVA? ...................................................................................................................... 8
QU ES NETBEANS?............................................................................................................ 9
CAPITULO II ............................................................................................................................... 9
1.2

PROCEDIMIENTO EXPERIMENTAL:...................................................................... 9

2.2

SOFTWARE (NETBEANS) ....................................................................................... 10

3.2

CODIGO DEL PROGRAMA ..................................................................................... 12

4.2

IMGENES DE RESULTADO ................................................................................. 20

CAPITULO III ............................................................................................................................ 22


1.3

CONCLUSION ........................................................................................................... 22

2.3

RECOMENDACIONES ............................................................................................. 22

3.3

CRONOGRAMA: ....................................................................................................... 22

4.3

RECURSOS: ............................................................................................................... 23

5.3

BIBLIOGRAFA Y REFERENCIAS. ........................................................................ 23

6.3

ANEXO ....................................................................................................................... 23

TITULO: DETECCIN DE ERRORES EN IMGENES FOTOGRFICAS Y


CORRECCIN MEDIANTE PROCESAMIENTO DE IMAGEN UTILIZANDO
SOFTWARE JAVA.
PRESENTACIN
El siguiente proyecto se basa en la deteccin de errores en imgenes tomadas por
cmaras fotogrficas, por lo cual se trata de analizar y corregir las averas que puede
tener cualquier tipo de imagen, por la cual se utilizara el software java netbeans el cual
ser utilizado para dicho proyecto.
Con el fin de aportar a la tecnologa de las imgenes y al procesamiento de dichas, son
primordiales aquellas aplicaciones que hoy en da se utilizan en los distintos tipos de
aparatos electrnicos como son las cmaras digitales para las personas que se dedican a
la fotografa, por lo cual tambin se enfatiza aquellas personas que estn interesados en
la tecnologa mvil el cual brinda cmaras digitales de alta resolucin y es por la cual el
presente trabajo es el de reconocer errores de imgenes tomadas por cmaras
fotogrficas antiguas como tambin por cmaras actuales las cuales se utilizan en
distintos eventos como en la produccin de pelculas o en eventos en las cuales son
utilizadas por personas que les gusta tener una buena imagen para su recuerdo.
Finalmente, la correccin que se realiza en este trabajo por medio de software java el
cual tomara patrones de imgenes con errores y este har la correccin respectiva en
dicha imagen, es por la cual en este trabajo se har lo mejor posible para le adquisicin
de una imagen de alta resolucin.

CAPITULO I
1.1 INTRODUCCIN:
El proyecto est basado para una buena utilidad en el campo de procesamiento digital de
imgenes que se realiza en distintas instituciones que llevan el curso de procesamiento
de seales digitales o el curso de sistemas de informacin de imgenes, es por lo que en
la actualidad se requiere este tipo de proyectos para su implementacin y uso, el cual se
le pueda dar en instituciones tales como la RENIEC o la Polica Nacional el cual se
dedica a la deteccin de personas con faltas, por medio de imgenes.
En el presente trabajo se establece una gran informacin y a la vez un gran aporte a la
tecnologa de las imgenes digitales, por la cual est comprendido por tres captulos
fundamentales en la cual se describe de la siguiente manera: Captulo I, Introduccin,
Antecedentes, Planteamiento del Problema, Justificacin del Problema, Hiptesis,
Definicin de Variables, Objetivos del Trabajo, Tipo de Investigacin, Marco Terico;
Captulo II, Procedimiento Experimental, Software, Cdigo de Programa, Imgenes de
Resultados; Captulo III, Conclusiones, Recomendaciones, Bibliografa, Anexos.

2.1 ANTECEDENTES:
La Historia de la fotografa empieza oficialmente en el ao 1839, con la divulgacin
mundial del primer procedimiento fotogrfico: el daguerrotipo.
Como antecedentes de la fotografa, se encuentran la cmara oscura y las
investigaciones sobre las sustancias fotosensibles, especialmente el ennegrecimiento de
las sales de plata. Ibn al-Haytham (Alhazen) (965 a 1040) llev varios experimentos
sobre la cmara oscura.
Tambin el procesamiento de imgenes se puede apreciar en todo tipo de cmaras de
filmacin como en las cmaras fotogrficas, una de las mas resaltantes en el
procesamiento de imgenes son el de pelculas en HD que se proyectan actualmente en
los cines de alto nivel en nuestro pas as como cine planet y otro que ofrecen este tipo
de pelculas el cual las imgenes son de un procesamiento de alta calidad, tambin se
puede apreciar el nivel de procesado en las salas de fotografas comerciales que estas
estn ubicadas en distintas ciudades de nuestro pas.

3.1 PLANTEAMIENTO DEL PROBLEMA


Hemos ingresado a un gran nivel en el procesamiento de imgenes a nivel del mundo el
cual nos hace pensar que s podemos llegar a logra en nuestro pas el procesamiento de
imgenes tanto en video como en imgenes tomadas desde una cmara filmadora, es por
el cual surge el problema de implementar una solucin al procesamiento de imgenes
para la iniciacin de hacer buenas y de bajo costo lo que es el mundo de la fotografa y
el mundo de lo que es el cine en nuestro pas, por lo cual se plantea este proyecto para
incentivar a aquellas personas que de alguna manera quieran aportar en el mundo de la
electrnica digital.

4.1 JUSTIFICACION DEL PROBLEMA


Es importante para m la elaboracin de este trabajo ya que aportare en la formacin de
los estudiantes de la escuela Profesional de Ingeniera Electrnica de la Universidad
Nacional del Altiplano los cuales necesitan adquirir destreza en el procesamiento digital
de seales.

5.1 HIPOTESIS:
La deteccin de errores en imgenes fotogrficas son de importancia para la buena
calidad de una imagen y la correccin es una solucin a este lo cual est relacionada
mediante procesamiento de imagen.

6.1 DEFINICION DE VARIABLES:


Variables independientes:
Mtodo por el cual se desarrollara el interfaz grafico en el procesamiento de imagen.
Variables dependientes:
Plataforma software java que ser manipulada por el usuario en el procesamiento de
imgenes.

7.1 OBJETIVOS DEL TRABAJO


Objetivo General:
Detectar errores en imgenes fotogrficas y corregir

mediante procesamiento de

imagen utilizando software java.


Objetivos especficos:

Detectar errores en las imgenes que se evaluaran.

Corregir las imgenes mediante java.

8.1 TIPO DE INVESTIGACION:


Este trabajo lleva como mtodo la aplicacin el software java netbeans donde se
aplicara un interfaz grafico para la manipulacin de las imgenes y a este se le
denomina como un mtodo experimental.
9.1 MARCO TEORICO:
PROCESAMIENTO DIGITAL DE IMGENES
El procesamiento digital de imgenes es el conjunto de tcnicas que se aplican a las
imgenes digitales con el objetivo de mejorar la calidad o facilitar la bsqueda de
informacin.

PROCESO DE FILTRADO
Es el conjunto de tcnicas englobadas dentro del pre procesamiento de imgenes cuyo
objetivo fundamental es obtener, a partir de una imagen origen, otra final cuyo resultado
sea ms adecuado para una aplicacin especfica mejorando ciertas caractersticas de la
misma que posibilite efectuar operaciones del procesado sobre ella.

Los principales objetivos que se persiguen con la aplicacin de filtros son:

Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre pxeles


vecinos.

Eliminar ruido: eliminar aquellos pxeles cuyo nivel de intensidad es muy diferente
al de sus vecinos y cuyo origen puede estar tanto en el proceso de adquisicin de la
imagen como en el de transmisin.

Realzar bordes: destacar los bordes que se localizan en una imagen.

Detectar bordes: detectar los pxeles donde se produce un cambio brusco en la


funcin intensidad.

Por tanto, se consideran los filtros como operaciones que se aplican a los pxeles de una
imagen digital para optimizarla, enfatizar cierta informacin o conseguir un efecto
especial en ella.
El proceso de filtrado puede llevarse a cabo sobre los dominios de frecuencia y/o
espacio.
Filtrado en el dominio de la frecuencia.

Los filtros de frecuencia procesan una imagen trabajando sobre el dominio de la


frecuencia en la Transformada de Fourier de la imagen. Para ello, sta se modifica
siguiendo el Teorema de la Convolucin correspondiente:
1. se aplica la Transformada de Fourier,
2. se multiplica posteriormente por la funcin del filtro que ha sido escogido,
3. para

concluir

re-transformndola

al

dominio

Transformada Inversa de Fourier.


Teorema de la Convolucin (frecuencia):
F(u,v): transformada de Fourier de la imagen original.
H(u,v): filtro atenuador de frecuencias.

espacial

empleando

la

Como la multiplicacin en el espacio de Fourier es idntica a la convolucin en el


dominio espacial, todos los filtros podran, en teora, ser implementados como un filtro
espacial.

Etapas del procesamiento de imgenes en el dominio de la frecuencia.

TIPOS:
Existen bsicamente tres tipos distintos de filtros que pueden aplicarse:

Filtro paso bajo: atena las frecuencias altas y mantiene sin variaciones las bajas.
El resultado en el dominio espacial es equivalente al de un filtro de suavizado,
donde las altas frecuencias que son filtradas se corresponden con los cambios
fuertes de intensidad. Consigue reducir el ruido suavizando las transiciones
existentes.

Filtro paso alto: atena las frecuencias bajas manteniendo invariables las
frecuencias altas. Puesto que las altas frecuencias corresponden en las imgenes a
cambios bruscos de densidad, este tipo de filtros es usado, porque entre otras
ventajas, ofrece mejoras en la deteccin de bordes en el dominio espacial, ya que
estos contienen gran cantidad de dichas frecuencias. Refuerza los contrastes que se
encuentran en la imagen.

Filtro paso banda: atena frecuencias muy altas o muy bajas manteniendo una
banda de rango medio.

QU ES JAVA?
Java es una tecnologa que se usa para el desarrollo de aplicaciones que convierten a
la Web en un elemento ms interesante y til. Java no es lo mismo que javascript,
que se trata de una tecnologa sencilla que se usa para crear pginas web y
solamente se ejecuta en el explorador. Java le permite jugar, cargar fotografas,
chatear en lnea, realizar visitas virtuales y utilizar servicios como, por ejemplo,
cursos en lnea, servicios bancarios en lnea y mapas interactivos. Si no dispone de
Java, muchas aplicaciones y sitios web no funcionarn.

QU ES NETBEANS?
NetBeans IDE es un entorno de desarrollo una herramienta para que los programadores
puedan escribir, compilar, depurar y ejecutar programas. Est escrito en Java - pero
puede servir para cualquier otro lenguaje de programacin. Existe adems un nmero
importante de mdulos para extender el NetBeans IDE. NetBeans IDE es un producto
libre y gratuito sin restricciones de uso.

CAPITULO II
1.2 PROCEDIMIENTO EXPERIMENTAL:
El procedimiento experimental se har segn el cronograma de la elaboracin del
proyecto.
Esta es una pequea recoleccin de imgenes antigua para poder procesar con el
software java netbeans, as como estas fotografas tambin se harn en videos de baja
resolucin.
Ver anexo: fotografas de puno de aos pasados y actuales.

CAMARA: posible cmara a utilizarse es la webcam sea las cmaras utilizadas en


cabinas de internet por lo que es posible tambin usar cmaras de alta resolucin como
son las que estn en las empresas bancarias, tambin se puede usar aquellas que emiten

seales inalmbricas por lo cual tenemos que hacer primero las pruebas de software en
muchas de las cmaras y en el proyecto se empezar con la cmara utilizada en internet,
lo cual estamos describiendo de la siguiente manera:

Tambin se har el intento de usar las cmaras digitales de fotografa como:

La resolucin de las cmaras de dispositivos mviles son tambin uno de los mas
probables aplicaciones que se les puede dar en un procesamiento de imagen.

2.2 SOFTWARE (NETBEANS)


El software de este proyecto en conocido como Java Netbeans, es donde se har la
aplicacin del procesamiento de las imgenes tomas por cmaras fotogrficas y otros
tipos de cmaras, por lo cual se presenta una pequea prueba que se muestra a
continuacin.
IMGENES DE PRUEBAS:

Fig. Plataforma de filtrado de imgenes netbeans.

Fig. Imagen cuando se est pulsando play para el ejecutable.

Fig. Buscando un archivo para procesar.

Fig. Imagen para ser filtrada

Fig. Imagen filtrada en escala gris

Fig. Filtrado en color azul y verde.

3.2 CODIGO DEL PROGRAMA


package javaimagenes;
import ClasesImagenes.AbrirImagen;
import ClasesImagenes.BaseImagenes;
import ClasesImagenes.CambiarFormatos;
import ClasesImagenes.TransformarImagen;
import java.awt.image.BufferedImage;

//-----PROCESAMIENTO DIGITAL DE SEALES-------//-----AUTOR:EYNER CALCINA QUISPE-------------public class FormPrincipal extends javax.swing.JFrame {


//Creamos los objetos que manejeramos en los eventos de los diferentes controles
//Los objetos estn instanciados
BaseImagenes ObjBase=new BaseImagenes();
AbrirImagen ObjAbrir=new AbrirImagen();
CambiarFormatos ObjCambiarFormat=new CambiarFormatos();
TransformarImagen ObjTransformaImg=new TransformarImagen();
public FormPrincipal() {
initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jSplitPane1 = new javax.swing.JSplitPane();
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jLabel_Imagen = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
ButtonDeshacer = new javax.swing.JButton();
ButtonRehacer = new javax.swing.JButton();
TextField_Info = new javax.swing.JTextField();
ButtonBlancoNegro = new javax.swing.JButton();
ButtonEscalaGrises = new javax.swing.JButton();
ButtonInvertir = new javax.swing.JButton();
ButtonFiltroRojo = new javax.swing.JButton();
ButtonFiltroVerde = new javax.swing.JButton();
ButtonFiltroAzul = new javax.swing.JButton();
ButtonAbrir = new javax.swing.JButton();
ButtonAbrirURL = new javax.swing.JButton();
TextField_URL = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Imgenes en Java");
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jLabel_Imagen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jScrollPane1.setViewportView(jLabel_Imagen);
javax.swing.GroupLayout
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);

jPanel1Layout

new

jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 878,
Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 463,
Short.MAX_VALUE)
);
jSplitPane1.setTopComponent(jPanel1);
ButtonDeshacer.setText("Deshacer");
ButtonDeshacer.setToolTipText("");
ButtonDeshacer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonDeshacerActionPerformed(evt);
}
});
ButtonRehacer.setText("Rehacer");
ButtonRehacer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonRehacerActionPerformed(evt);
}
});
ButtonBlancoNegro.setText("Blanco Negro");
ButtonBlancoNegro.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonBlancoNegroActionPerformed(evt);
}
});
ButtonEscalaGrises.setText("Escala grises");
ButtonEscalaGrises.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonEscalaGrisesActionPerformed(evt);
}
});
ButtonInvertir.setText("Invertir");
ButtonInvertir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonInvertirActionPerformed(evt);
}
});

ButtonFiltroRojo.setText("Filtro rojo");
ButtonFiltroRojo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonFiltroRojoActionPerformed(evt);
}
});
ButtonFiltroVerde.setText("Filtro verde");
ButtonFiltroVerde.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonFiltroVerdeActionPerformed(evt);
}
});
ButtonFiltroAzul.setText("Filtro azul");
ButtonFiltroAzul.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonFiltroAzulActionPerformed(evt);
}
});
ButtonAbrir.setText("Abrir");
ButtonAbrir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonAbrirActionPerformed(evt);
}
});
ButtonAbrirURL.setText("Abrir URL");
ButtonAbrirURL.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ButtonAbrirURLActionPerformed(evt);
}
});
TextField_URL.setText("http://");
javax.swing.GroupLayout
javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(

jPanel2Layout

new

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(ButtonAbrir)
.addGap(18, 18, 18)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(TextField_URL,
javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(ButtonAbrirURL)
.addGap(0, 87, Short.MAX_VALUE)))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING, false)
.addComponent(TextField_Info,
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(ButtonDeshacer,
javax.swing.GroupLayout.PREFERRED_SIZE,
132,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(ButtonRehacer,
javax.swing.GroupLayout.PREFERRED_SIZE,
132,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING, false)
.addComponent(ButtonBlancoNegro,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(ButtonFiltroRojo,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING, false)
.addComponent(ButtonEscalaGrises,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(ButtonFiltroVerde,
javax.swing.GroupLayout.PREFERRED_SIZE,
93,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING, false)
.addComponent(ButtonFiltroAzul,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(ButtonInvertir,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(

79,

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(ButtonDeshacer)
.addComponent(ButtonRehacer)
.addComponent(ButtonBlancoNegro)
.addComponent(ButtonEscalaGrises)
.addComponent(ButtonInvertir)
.addComponent(ButtonAbrir)
.addComponent(ButtonAbrirURL))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(TextField_Info,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ButtonFiltroRojo)
.addComponent(ButtonFiltroVerde)
.addComponent(ButtonFiltroAzul)
.addComponent(TextField_URL,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 12, Short.MAX_VALUE))
);
jSplitPane1.setRightComponent(jPanel2);
javax.swing.GroupLayout
layout
=
new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSplitPane1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSplitPane1)

);
pack();
}// </editor-fold>
//--------BOTON ABRIR------------private void ButtonAbrirActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage imagen=ObjAbrir.abrirImagenLocal();
if (imagen!=null){
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
}
//--------BOTON ABRIR URL-------------private void ButtonAbrirURLActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage imagen=ObjAbrir.abrirImagenURL(TextField_URL.getText());
if (imagen!=null){
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
}
//-------BOTON BLANCO Y NEGRO---------private void ButtonBlancoNegroActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage
imagen=ObjCambiarFormat.iconToBufferedImage(jLabel_Imagen.getIcon());
imagen=ObjTransformaImg.blancoNegro(imagen, 128);
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
//--------BOTON GRISES----------private void ButtonEscalaGrisesActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage
imagen=ObjCambiarFormat.iconToBufferedImage(jLabel_Imagen.getIcon());
imagen=ObjTransformaImg.escalaGrises(imagen);
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
//---------BOTON INVERTIR-----------private void ButtonInvertirActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage
imagen=ObjCambiarFormat.iconToBufferedImage(jLabel_Imagen.getIcon());
imagen=ObjTransformaImg.invertirImagen(imagen);
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
//--------FILTROS---------------//---------FILTRO ROJO----------------private void ButtonFiltroRojoActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage
imagen=ObjCambiarFormat.iconToBufferedImage(jLabel_Imagen.getIcon());
imagen=ObjTransformaImg.filtroRojo(imagen);
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
//------------FILTRO VERDE---------------------private void ButtonFiltroVerdeActionPerformed(java.awt.event.ActionEvent evt) {

BufferedImage
imagen=ObjCambiarFormat.iconToBufferedImage(jLabel_Imagen.getIcon());
imagen=ObjTransformaImg.filtroVerde(imagen);
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
//-------------FILTRO AZUL---------------------private void ButtonFiltroAzulActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage
imagen=ObjCambiarFormat.iconToBufferedImage(jLabel_Imagen.getIcon());
imagen=ObjTransformaImg.filtroAzul(imagen);
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
}
//--------BOTON DESHACER-------------private void ButtonDeshacerActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage imagen=ObjBase.deshacerImagen();
if (imagen!=null){
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
TextField_Info.setText(ObjBase.informacionImagenActual());
}
}
//-------BOTON REHACER---------------private void ButtonRehacerActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage imagen=ObjBase.rehacerImagen();
if (imagen!=null){
jLabel_Imagen.setIcon(ObjCambiarFormat.bufferedImageToIcon(imagen));
TextField_Info.setText(ObjBase.informacionImagenActual());
}
}

public static void main(String args[]) {


try {
for
(javax.swing.UIManager.LookAndFeelInfo
info
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FormPrincipal.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FormPrincipal.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(FormPrincipal.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormPrincipal.class.getName()).log(java.util.loggin
g.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormPrincipal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton ButtonAbrir;
private javax.swing.JButton ButtonAbrirURL;
private javax.swing.JButton ButtonBlancoNegro;
private javax.swing.JButton ButtonDeshacer;
private javax.swing.JButton ButtonEscalaGrises;
private javax.swing.JButton ButtonFiltroAzul;
private javax.swing.JButton ButtonFiltroRojo;
private javax.swing.JButton ButtonFiltroVerde;
private javax.swing.JButton ButtonInvertir;
private javax.swing.JButton ButtonRehacer;
private javax.swing.JTextField TextField_Info;
private javax.swing.JTextField TextField_URL;
private javax.swing.JLabel jLabel_Imagen;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSplitPane jSplitPane1;
// End of variables declaration
}
4.2 IMGENES DE RESULTADO
Imagen normal, el cual ser procesado con filtros de color.

Luego de tener y/o seleccionar una imagen o foto para que luego sea procesada, en los
botones de la plataforma dada se tiene como con facilidad se puede hacer las escalas
correspondientes.
Las siguientes imgenes son procesadas mediante filtros de colores.

Las imgenes mostradas son las que se procesaron mediante colores el cual se
especifica que la escala o color gris fue procesada como su inversa que se muestra al
costado de la gris.

CAPITULO III

1.3 CONCLUSION
En el presente trabajo se concluye que el procesamiento de imgenes de tipo fotografa
o imgenes que son desarrolladas en las webs, son poco tediosos de hacer el
procesamiento por lo que se hizo en solo procesar las imgenes en colores para asi ver
las dificultades de los errores que pueda corregirse de una fotografa y/o imagen
cualquiera, finalmente el procesamiento que se lleg a alcanzar por este programa es
hacer filtro de colores.

2.3 RECOMENDACIONES
En todo tipo de procesamiento se debe conocer las caractersticas la cual se debe
de procesar es decir el objeto o elemento a ser procesada.

Para hacer los filtros de imgenes se debe de considerar los tipos de colores al
cual se debe de procesar, mejor dicho conocer que colores que puede
combinarse entre los colores rojo, verde y azul.

Finalmente tener mucho cuidado en usar el programa al ser usado para procesar
imgenes, lo cual nos permite visualizar con que rapidez puede enviar los datos
la computadora.

3.3 CRONOGRAMA:
S.1

1er. Recoleccin de informacin


2do. Bsqueda de fotografas y videos

S.2

S.3

S.4

S.5

S.6

S.

S.

S.

S.

S.

S.

S.

10

11

12

13

X
X

X
X

(antiguas)
3ro. Seleccin de patrones (fotos y

videos)
4to. Avance en software
5to. Bsqueda de cmara de video para

X
X

procesamiento.
6to. Pruebas software y cmara
7mo. Retoques finales del proyecto
8vo. Aprobacin de proyecto
9no. Presentacin y sustentacin

4.3 RECURSOS:
En la siguiente tabla observamos los siguientes recursos que se necesitaran.
Cantidad.

Costo.

Total.

Computadora

1 unidad

personal

Software

3.50 soles

3.50

Cmara video

80.00 soles

80.00

Fotografas

5.00 soles

5.00

Impresora

personal
88.50 soles

Total

5.3 BIBLIOGRAFA Y REFERENCIAS.


Jos Morn, SEALES Y SISTEMAS, Editorial Biblioteca Universidad Rafael
Urdaneta, Ao 2011.

Mag. Guillermo R. Friedrich, INTRODUCCIN AL PROCESAMIENTO


DIGITAL DE SEALES, Ctedra: Tcnicas Digitales III, Ao 2002.

http://es.wikipedia.org/wiki/Procesamiento_digital_de_im%C3%A1genes

http://www.tsc.uc3m.es/imagine/Portada/Enlaces.html.

https://netbeans.org/

6.3 ANEXO

FICHA TECNICA DE CAMARA GENIUS MENSSENGER 310

SYSTEM REQUIREMENTS:
PC

Intel Pentium III 800MHz MMX compatible con PC superior


Microsoft Windows Vista, XP, 2000, Me, 98SE superior
128MB RAM
CD-ROM
Puerto USB 1.1 / 1.0 disponible
60MB de espacio libre en disco duro (se recomienda 260MB)
Direct X 9.0 superior

Package Contents:

Messenger 310
El CD incluye
- Controlador
- CrazyTalk Avatar Creator
- CrazyTalk Cam Suite
- Manual de usuario en varios idiomas
Gua rpida en varios idiomas

You might also like