Professional Documents
Culture Documents
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
4.1
5.1
HIPOTESIS: ......................................................................................................................... 5
6.1
DEFINICION DE VARIABLES:............................................................................................... 5
Variables independientes:......................................................................................................... 5
Variables dependientes:............................................................................................................ 5
7.1
9.1
MARCO TEORICO:.............................................................................................................. 6
PROCEDIMIENTO EXPERIMENTAL:...................................................................... 9
2.2
3.2
4.2
CONCLUSION ........................................................................................................... 22
2.3
RECOMENDACIONES ............................................................................................. 22
3.3
CRONOGRAMA: ....................................................................................................... 22
4.3
RECURSOS: ............................................................................................................... 23
5.3
6.3
ANEXO ....................................................................................................................... 23
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.
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.
mediante procesamiento de
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.
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.
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.
concluir
re-transformndola
al
dominio
espacial
empleando
la
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.
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:
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.
@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());
}
}
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
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
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
SYSTEM REQUIREMENTS:
PC
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