24
UNIVERSIDAD NACIONAL DEL ALTIPLANO FACULTAD DE INGENIERIA MECANICA ELECTRICA, ELECTRONICA Y SISTEMAS ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA TRABAJO: DETECCIÓN DE ERRORES EN IMÁGENES FOTOGRÁFICAS Y CORRECCIÓN MEDIANTE PROCESAMIENTO DE IMAGEN UTILIZANDO SOFTWARE JAVA. PRESENTADO POR: EYNER CALCINA QUISPE CURSO: PROCESAMIENTO DIGITAL DE SEÑALES SEMESTRE: X PUNO PERU 2013

FINAL_DSP

Embed Size (px)

DESCRIPTION

proyecto final procesamiento digital de imagenes en java

Citation preview

UNIVERSIDAD NACIONAL DEL ALTIPLANO

FACULTAD DE INGENIERIA MECANICA ELECTRICA,

ELECTRONICA Y SISTEMAS

ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

TRABAJO:

DETECCIÓN DE ERRORES EN IMÁGENES FOTOGRÁFICAS Y

CORRECCIÓN MEDIANTE PROCESAMIENTO DE IMAGEN

UTILIZANDO SOFTWARE JAVA.

PRESENTADO POR:

EYNER CALCINA QUISPE

CURSO: PROCESAMIENTO DIGITAL DE SEÑALES

SEMESTRE: X

PUNO – PERU

2013

INDICE TITULO ........................................................................................................................................ 3

CAPITULO I ................................................................................................................................. 4

1.1 INTRODUCCIÓN: ........................................................................................................... 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 específicos: ................................................................................................................ 6

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

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

PROCESAMIENTO DIGITAL DE IMÁGENES ................................................................................. 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 IMÁGENES DE RESULTADO ................................................................................. 20

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

1.3 CONCLUSION ........................................................................................................... 22

2.3 RECOMENDACIONES ............................................................................................. 22

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

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

5.3 BIBLIOGRAFÍA Y REFERENCIAS. ........................................................................ 23

6.3 ANEXO ....................................................................................................................... 23

TITULO: DETECCIÓN DE ERRORES EN IMÁGENES FOTOGRÁFICAS Y

CORRECCIÓN MEDIANTE PROCESAMIENTO DE IMAGEN UTILIZANDO

SOFTWARE JAVA.

PRESENTACIÓN

El siguiente proyecto se basa en la detección de errores en imágenes tomadas por

cámaras fotográficas, por lo cual se trata de analizar y corregir las averías 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 tecnología de las imágenes y al procesamiento de dichas, son

primordiales aquellas aplicaciones que hoy en día se utilizan en los distintos tipos de

aparatos electrónicos como son las cámaras digitales para las personas que se dedican a

la fotografía, por lo cual también se enfatiza aquellas personas que están interesados en

la tecnología móvil el cual brinda cámaras digitales de alta resolución y es por la cual el

presente trabajo es el de reconocer errores de imágenes tomadas por cámaras

fotográficas antiguas como también por cámaras actuales las cuales se utilizan en

distintos eventos como en la producción de películas o en eventos en las cuales son

utilizadas por personas que les gusta tener una buena imagen para su recuerdo.

Finalmente, la corrección que se realiza en este trabajo por medio de software java el

cual tomara patrones de imágenes con errores y este hará la corrección respectiva en

dicha imagen, es por la cual en este trabajo se hará lo mejor posible para le adquisición

de una imagen de alta resolución.

CAPITULO I

1.1 INTRODUCCIÓN:

El proyecto está basado para una buena utilidad en el campo de procesamiento digital de

imágenes que se realiza en distintas instituciones que llevan el curso de procesamiento

de señales digitales o el curso de sistemas de información de imágenes, es por lo que en

la actualidad se requiere este tipo de proyectos para su implementación y uso, el cual se

le pueda dar en instituciones tales como la RENIEC o la Policía Nacional el cual se

dedica a la detección de personas con faltas, por medio de imágenes.

En el presente trabajo se establece una gran información y a la vez un gran aporte a la

tecnología de las imágenes digitales, por la cual está comprendido por tres capítulos

fundamentales en la cual se describe de la siguiente manera: Capítulo I, Introducción,

Antecedentes, Planteamiento del Problema, Justificación del Problema, Hipótesis,

Definición de Variables, Objetivos del Trabajo, Tipo de Investigación, Marco Teórico;

Capítulo II, Procedimiento Experimental, Software, Código de Programa, Imágenes de

Resultados; Capítulo III, Conclusiones, Recomendaciones, Bibliografía, Anexos.

2.1 ANTECEDENTES:

La Historia de la fotografía empieza oficialmente en el año 1839, con la divulgación

mundial del primer procedimiento fotográfico: el daguerrotipo.

Como antecedentes de la fotografía, se encuentran la cámara 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 cámara oscura.

También el procesamiento de imágenes se puede apreciar en todo tipo de cámaras de

filmación como en las cámaras fotográficas, una de las mas resaltantes en el

procesamiento de imágenes son el de películas en HD que se proyectan actualmente en

los cines de alto nivel en nuestro país así como cine planet y otro que ofrecen este tipo

de películas el cual las imágenes son de un procesamiento de alta calidad, también se

puede apreciar el nivel de procesado en las salas de fotografías comerciales que estas

están ubicadas en distintas ciudades de nuestro país.

3.1 PLANTEAMIENTO DEL PROBLEMA

Hemos ingresado a un gran nivel en el procesamiento de imágenes a nivel del mundo el

cual nos hace pensar que sí podemos llegar a logra en nuestro país el procesamiento de

imágenes tanto en video como en imágenes tomadas desde una cámara filmadora, es por

el cual surge el problema de implementar una solución al procesamiento de imágenes

para la iniciación de hacer buenas y de bajo costo lo que es el mundo de la fotografía y

el mundo de lo que es el cine en nuestro país, por lo cual se plantea este proyecto para

incentivar a aquellas personas que de alguna manera quieran aportar en el mundo de la

electrónica digital.

4.1 JUSTIFICACION DEL PROBLEMA

Es importante para mí la elaboración de este trabajo ya que aportare en la formación de

los estudiantes de la escuela Profesional de Ingeniería Electrónica de la Universidad

Nacional del Altiplano los cuales necesitan adquirir destreza en el procesamiento digital

de señales.

5.1 HIPOTESIS:

La detección de errores en imágenes fotográficas son de importancia para la buena

calidad de una imagen y la corrección es una solución a este lo cual está relacionada

mediante procesamiento de imagen.

6.1 DEFINICION DE VARIABLES:

Variables independientes:

Método 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

imágenes.

7.1 OBJETIVOS DEL TRABAJO

Objetivo General:

Detectar errores en imágenes fotográficas y corregir mediante procesamiento de

imagen utilizando software java.

Objetivos específicos:

Detectar errores en las imágenes que se evaluaran.

Corregir las imágenes mediante java.

8.1 TIPO DE INVESTIGACION:

Este trabajo lleva como método la aplicación el software java netbeans donde se

aplicara un interfaz grafico para la manipulación de las imágenes y a este se le

denomina como un método experimental.

9.1 MARCO TEORICO:

PROCESAMIENTO DIGITAL DE IMÁGENES

El procesamiento digital de imágenes es el conjunto de técnicas que se aplican a las

imágenes digitales con el objetivo de mejorar la calidad o facilitar la búsqueda de

información.

PROCESO DE FILTRADO

Es el conjunto de técnicas englobadas dentro del pre procesamiento de imágenes cuyo

objetivo fundamental es obtener, a partir de una imagen origen, otra final cuyo resultado

sea más adecuado para una aplicación específica mejorando ciertas características de la

misma que posibilite efectuar operaciones del procesado sobre ella.

Los principales objetivos que se persiguen con la aplicación de filtros son:

Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre píxeles

vecinos.

Eliminar ruido: eliminar aquellos píxeles cuyo nivel de intensidad es muy diferente

al de sus vecinos y cuyo origen puede estar tanto en el proceso de adquisición de la

imagen como en el de transmisión.

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

Detectar bordes: detectar los píxeles donde se produce un cambio brusco en la

función intensidad.

Por tanto, se consideran los filtros como operaciones que se aplican a los píxeles de una

imagen digital para optimizarla, enfatizar cierta información 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 Convolución correspondiente:

1. se aplica la Transformada de Fourier,

2. se multiplica posteriormente por la función del filtro que ha sido escogido,

3. para concluir re-transformándola al dominio espacial empleando la

Transformada Inversa de Fourier.

Teorema de la Convolución (frecuencia):

F(u,v): transformada de Fourier de la imagen original.

H(u,v): filtro atenuador de frecuencias.

Como la multiplicación en el espacio de Fourier es idéntica a la convolución en el

dominio espacial, todos los filtros podrían, en teoría, ser implementados como un filtro

espacial.

Etapas del procesamiento de imágenes en el dominio de la frecuencia.

TIPOS:

Existen básicamente tres tipos distintos de filtros que pueden aplicarse:

Filtro paso bajo: atenúa 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: atenúa las frecuencias bajas manteniendo invariables las

frecuencias altas. Puesto que las altas frecuencias corresponden en las imágenes a

cambios bruscos de densidad, este tipo de filtros es usado, porque entre otras

ventajas, ofrece mejoras en la detección 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: atenúa frecuencias muy altas o muy bajas manteniendo una

banda de rango medio.

¿QUÉ ES JAVA?

Java es una tecnología que se usa para el desarrollo de aplicaciones que convierten a

la Web en un elemento más interesante y útil. Java no es lo mismo que javascript,

que se trata de una tecnología sencilla que se usa para crear páginas web y

solamente se ejecuta en el explorador. Java le permite jugar, cargar fotografías,

chatear en línea, realizar visitas virtuales y utilizar servicios como, por ejemplo,

cursos en línea, servicios bancarios en línea y mapas interactivos. Si no dispone de

Java, muchas aplicaciones y sitios web no funcionarán.

¿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 programación. Existe además un número

importante de módulos 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á según el cronograma de la elaboración del

proyecto.

Esta es una pequeña recolección de imágenes antigua para poder procesar con el

software java netbeans, así como estas fotografías también se harán en videos de baja

resolución.

Ver anexo: fotografías de puno de años pasados y actuales.

CAMARA: posible cámara a utilizarse es la webcam ósea las cámaras utilizadas en

cabinas de internet por lo que es posible también usar cámaras de alta resolución como

son las que están en las empresas bancarias, también se puede usar aquellas que emiten

señales inalámbricas por lo cual tenemos que hacer primero las pruebas de software en

muchas de las cámaras y en el proyecto se empezará con la cámara utilizada en internet,

lo cual estamos describiendo de la siguiente manera:

También se hará el intento de usar las cámaras digitales de fotografía como:

La resolución de las cámaras de dispositivos móviles son también 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

aplicación del procesamiento de las imágenes tomas por cámaras fotográficas y otros

tipos de cámaras, por lo cual se presenta una pequeña prueba que se muestra a

continuación.

IMÁGENES DE PRUEBAS:

Fig. Plataforma de filtrado de imágenes 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 SEÑALES--------

//-----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 están 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("Imágenes en Java");

jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);

jLabel_Imagen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

jScrollPane1.setViewportView(jLabel_Imagen);

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

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 jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

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, 79,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addContainerGap())

);

jPanel2Layout.setVerticalGroup(

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 IMÁGENES 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 imágenes son procesadas mediante filtros de colores.

Las imágenes 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 imágenes de tipo fotografía

o imágenes que son desarrolladas en las webs, son poco tediosos de hacer el

procesamiento por lo que se hizo en solo procesar las imágenes en colores para asi ver

las dificultades de los errores que pueda corregirse de una fotografía 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 características la cual se debe

de procesar es decir el objeto o elemento a ser procesada.

Para hacer los filtros de imágenes 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

imágenes, 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.

7

S.

8

S.

9

S.

10

S.

11

S.

12

S.

13

1er. Recolección de información X X

2do. Búsqueda de fotografías y videos

(antiguas)

X X

3ro. Selección de patrones (fotos y

videos)

X

4to. Avance en software X

5to. Búsqueda de cámara de video para

procesamiento.

X

6to. Pruebas software y cámara X X

7mo. Retoques finales del proyecto X X X

8vo. Aprobación de proyecto

9no. Presentación y sustentación X

4.3 RECURSOS:

En la siguiente tabla observamos los siguientes recursos que se necesitaran.

Cantidad. Costo. Total.

Computadora 1 unidad personal

Software 1 3.50 soles 3.50

Cámara video 2 80.00 soles 80.00

Fotografías 5 5.00 soles 5.00

Impresora 1 personal

Total 88.50 soles

5.3 BIBLIOGRAFÍA Y REFERENCIAS.

José Morón, SEÑALES Y SISTEMAS, Editorial Biblioteca Universidad Rafael

Urdaneta, Año 2011.

Mag. Guillermo R. Friedrich, INTRODUCCIÓN AL PROCESAMIENTO

DIGITAL DE SEÑALES, Cátedra: Técnicas Digitales III, Año 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

Guía rápida en varios idiomas