• No results found

5.3 Application to 2D Object Localisation

5.4.3 Edge Contour Localisation Performance

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES “UNIANDES”

FACULTAD DE SISTEMAS MERCANTILES CARRERA DE SISTEMAS INFORMÁTICOS

MANUAL TÉCNICO

Sistema biométrico de reconocimiento facial para el control de asistencia del personal docente y administrativo de la Uniandes Tulcán.

Autor

Ayala Goyes Michael Santiago Tutor

Ing. Dorado Ceballos Cristian Yovao Msc.

Tulcán - Ecuador 2018

FORMULARIO REGISTRO DE DOCENTES

Public Class FormDocentes Dim vrband As Integer = 0 Variable de tipo objeto

Dim objest As New Cldocentes() Carga datos de los docentes

Private Sub FormDocentes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.TdocentesTableAdapter.Fill(Me.VFDataSet.tdocentes) mostrar()

End Sub

Muestra información de docentes Sub mostrar() If Me.TdocentesBindingSource.Count <> 0 Then Me.TextBox1.Text = Me.TdocentesBindingSource.Current("cedula").ToString.Trim Me.TextBox2.Text = Me.TdocentesBindingSource.Current("apellidos").ToString.Trim Me.TextBox3.Text = Me.TdocentesBindingSource.Current("nombres").ToString.Trim Me.TextBox4.Text = Me.TdocentesBindingSource.Current("direccion").ToString.Trim Me.TextBox5.Text = Me.TdocentesBindingSource.Current("telefono").ToString.Trim Me.TextBox6.Text = Me.TdocentesBindingSource.Current("profesion").ToString.Trim Me.ComboBox1.Text = Me.TdocentesBindingSource.Current("genero").ToString.Trim End If End Sub

Activa cuadros de texto y botones Sub activar() Me.TextBox1.ReadOnly = False Me.TextBox2.ReadOnly = False Me.TextBox3.ReadOnly = False Me.TextBox4.ReadOnly = False Me.TextBox5.ReadOnly = False Me.TextBox6.ReadOnly = False Me.ComboBox1.Enabled = True Me.Button1.Enabled = False Me.Button2.Enabled = False Me.Button3.Enabled = False Me.Button4.Enabled = False Me.Button5.Enabled = False Me.Button6.Enabled = False Me.Button7.Enabled = True Me.Button8.Enabled = False Me.Button9.Enabled = False Me.Button10.Enabled = True Me.TdocentesDataGridView.Enabled = False End Sub

Desactiva cuadros de texto y botones Sub desactivar() Me.TextBox1.ReadOnly = True Me.TextBox2.ReadOnly = True Me.TextBox3.ReadOnly = True Me.TextBox4.ReadOnly = True Me.TextBox5.ReadOnly = True Me.TextBox6.ReadOnly = True

Me.ComboBox1.Enabled = False Me.Button1.Enabled = True Me.Button2.Enabled = True Me.Button3.Enabled = True Me.Button4.Enabled = True Me.Button5.Enabled = True Me.Button6.Enabled = True Me.Button7.Enabled = False Me.Button8.Enabled = True Me.Button9.Enabled = True Me.Button10.Enabled = False Me.TdocentesDataGridView.Enabled = True End Sub

Mueve al primer registro

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.TdocentesBindingSource.MoveFirst() mostrar()

End Sub

Mueve al registro anterior

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.TdocentesBindingSource.MovePrevious() mostrar()

End Sub

Mueve al siguiente registro

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Me.TdocentesBindingSource.MoveNext() mostrar()

Mueve al último registro

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Me.TdocentesBindingSource.MoveLast() mostrar()

End Sub Busca un registro

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim rsp As String

rsp = Trim$(InputBox("Ingrese cédula del docente que desea buscar..."))

Me.TdocentesBindingSource.Position = Me.TdocentesBindingSource.Find("cedula", rsp) If Me.TdocentesBindingSource.Current("cedula").ToString.Trim = rsp Then mostrar() Else MsgBox("Docente no registrado...") End If End Sub

Activa cuadros de texto para ingresar información

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

If vrperiodo = vrperact Then activar() Me.Button7.Text = "Grabar" Me.TextBox1.Text = "" Me.TextBox2.Text = "" Me.TextBox3.Text = "" Me.TextBox4.Text = "" Me.TextBox5.Text = "" Me.TextBox6.Text = ""

Me.ComboBox1.Text = "" vrband = 0

Else

MsgBox("No puede modificar registros en periodos diferentes al actual") End If

End Sub

Cancela ingreso de información

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click

desactivar()

Me.TdocentesBindingSource.MoveFirst() mostrar()

Me.Button7.Text = "Grabar" End Sub

Activa estado modificar

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

If vrperiodo = vrperact Then activar()

Me.TextBox1.ReadOnly = True Me.Button7.Text = "Actualizar" vrband = 1

Else

MsgBox("No puede modificar registros en periodos diferentes al actual") End If

End Sub

Activa estado eliminar

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

If MsgBox("Confirme si desea eliminar el presente registro...", MessageBoxButtons.YesNo, "Está a punto de eliminar información...") = MsgBoxResult.Yes Then objest.eliminar(Me.TdocentesBindingSource.Current("cedula").ToString.Trim) Me.TdocentesTableAdapter.Fill(Me.VFDataSet.tdocentes) mostrar() End If Else

MsgBox("No puede modificar registros en periodos diferentes al actual") End If

End Sub

Permite grabar información

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

If vrperiodo = vrperact Then If vrband = 0 Then

objest.grabar(Me.TextBox1.Text.Trim, Me.TextBox2.Text.Trim, Me.TextBox3.Text.Trim, Me.TextBox4.Text.Trim, Me.TextBox5.Text.Trim, Me.ComboBox1.Text.Trim, Me.TextBox6.Text.Trim)

desactivar()

Me.Button7.Text = "Grabar" Else

objest.modificar(Me.TextBox1.Text.Trim, Me.TextBox2.Text.Trim, Me.TextBox3.Text.Trim, Me.TextBox4.Text.Trim, Me.TextBox5.Text.Trim, Me.ComboBox1.Text.Trim, Me.TextBox6.Text.Trim) desactivar() Me.Button7.Text = "Grabar" End If Me.TdocentesTableAdapter.Fill(Me.VFDataSet.tdocentes) mostrar() Else

End If End Sub

Validación de cuadros de texto

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If InStr(1, "0123456789" & Chr(8), e.KeyChar) = 0 Then e.Handled = True

End If End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If InStr(1, "abcdefghijklmnñopqrstuvwxyz

ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" & Chr(8), e.KeyChar) = 0 Then e.Handled = True

End If End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress

If InStr(1, "abcdefghijklmnñopqrstuvwxyz

ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" & Chr(8), e.KeyChar) = 0 Then e.Handled = True

End If End Sub

Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress

If InStr(1, "abcdefghijklmnñopqrstuvwxyz

ABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789" & Chr(8), e.KeyChar) = 0 Then

e.Handled = True End If

Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress

If InStr(1, "0123456789" & Chr(8), e.KeyChar) = 0 Then e.Handled = True

End If End Sub

Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress

If InStr(1, "abcdefghijklmnñopqrstuvwxyz

ABCDEFGHIJKLMNÑOPQRSTUVWXYZ" & Chr(8), e.KeyChar) = 0 Then e.Handled = True

End If End Sub

Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress

If InStr(1, "", e.KeyChar) = 0 Then e.Handled = True

End If End Sub End Class

CLASE CLCLAVES Public Class Clclaves Inherits clconexion Private cad As String

Public Sub grabar(ByVal usu As String, ByVal pas As String, ByVal per As String) ‘Cadena que permite grabar datos en la tabla Claves

cad = "insert into tclaves (usuario, password, permisos) values ('" + usu.Trim + "', '" + pas.Trim + "', '" + per.Trim + "')"

ejecutarins(cad) End Sub

Public Sub modificar(ByVal usu As String, ByVal pas As String, ByVal per As String) ‘Cadena que permite modificar datos en la tabla Claves

cad = "update tclaves set password='" + pas.Trim + "', permisos='" + per.Trim + "' where(usuario='" + usu.Trim + "')"

ejecutarins(cad) End Sub

Public Sub eliminar(ByVal usu As String)

‘Cadena que permite eliminar datos en la tabla Claves

cad = "delete from tclaves where(usuario='" + usu.trim + "')" ejecutarins(cad)

End Sub End Class

CÓDIGO DEL FORMULARIO USUARIOS

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

‘El cursor se mueve al primer registro de la tabla Claves y muestra los datos Me.TclavesBindingSource.MoveFirst()

mostrar() End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

‘El cursor se mueve al registro anterior de la tabla Claves y muestra los datos Me.TclavesBindingSource.MovePrevious()

mostrar() End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim rsp As String

rsp = Trim$(InputBox("Ingrese usuario a buscar..."))

Me.TclavesBindingSource.Position = Me.TclavesBindingSource.Find("usuario", rsp)

If Me.TclavesBindingSource.Current("usuario").ToString.Trim <> rsp.Trim Then MsgBox("Usuario no registrado...")

End If mostrar() End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

‘El cursor se mueve al registro siguente y muestra los datos de la tbla Claves Me.TclavesBindingSource.MoveNext()

mostrar() End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

‘El cursor se mueve al ultimo registro y muestra los datos de la table Claves Me.TclavesBindingSource.MoveLast()

mostrar() End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

activar()

‘Activa la edición de los cuadros de texto para ingresar datos Me.Button7.Text = "Grabar"

Me.TextBox1.Text = "" Me.TextBox2.Text = "" vrband = 0

End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

If Me.RadioButton1.Checked = True Then

dtan = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Administrador"

Else

dtan = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Usuario" End If activar() Me.Button7.Text = "Actualizar" vrband = 1 End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

‘Pregunta de confirmación antes de eliminar un registro

If MsgBox("Confirme si desea eliminar el presente registro...", MessageBoxButtons.YesNo, "Está a punto de eliminar información...") = MsgBoxResult.Yes Then

If Me.RadioButton1.Checked = True Then

dtan = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Administrador"

Else

dtan = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Usuario"

End If

‘Elimina el registro active de la table Claves

objclaves.eliminar(Me.TextBox1.Text.Trim) ‘Actualiza los datos en la tabla Claves

Me.TclavesTableAdapter.Fill(Me.RfidbiblioDataSet.tclaves) mostrar()

End If End Sub

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click

‘Cancela cualquier evento de edición de datos desactivar() Me.TclavesBindingSource.MoveFirst() mostrar() Me.Button7.Text = "Grabar" End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

If vrband = 0 Then

If Me.RadioButton1.Checked = True Then

dtac = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Administrador"

‘Graba datos en la tabla Claves

objclaves.grabar(Me.TextBox1.Text.Trim, Me.TextBox2.Text.Trim, "1") End If

If Me.RadioButton2.Checked = True Then

dtac = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Usuario"

‘Graba datos en la tabla Claves

objclaves.grabar(Me.TextBox1.Text.Trim, Me.TextBox2.Text.Trim, "0") End If

desactivar()

Me.Button7.Text = "Grabar" Else

If Me.RadioButton1.Checked = True Then

dtac = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Administrador"

‘Graba datos en la tabla Claves

objclaves.modificar(Me.TextBox1.Text.Trim, Me.TextBox2.Text.Trim, "1") End If

dtac = Me.TextBox1.Text.Trim + " || " + Me.TextBox2.Text.Trim + " || " + "Usuario"

‘Graba datos en la tabla Claves

objclaves.modificar(Me.TextBox1.Text.Trim, Me.TextBox2.Text.Trim, "0") End If

desactivar()

Me.Button7.Text = "Grabar" End If

‘Actualiza datos de la tabla Claves

Me.TclavesTableAdapter.Fill(Me.RfidbiblioDataSet.tclaves) mostrar()

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

‘Valida el cuadro de texto para que solo permita ingresar letras y números

If InStr(1,

"abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ012345678 9_-" & Chr(8), e.KeyChar) = 0 Then

e.Handled = True End If

End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If InStr(1, " ", e.KeyChar) <> 0 Then e.Handled = True

End If End Sub

Private Sub TclavesDataGridView_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles TclavesDataGridView.CellContentClick

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub End Class

CODIGO DEL FORMULARIO CLAVES Public Class FormClaves

Dim objclaves As New Clclaves()

Private Sub FormClaves_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.ClavesTableAdapter.Fill(Me.GanadoDataSet.Claves) End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Me.TextBox2.Text.Trim = "" Or Me.TextBox3.Text.Trim = "" Then MsgBox("Ingrese datos en todos los campos...")

Else Me.ClavesBindingSource.MoveFirst() Me.ClavesBindingSource.Position = Me.ClavesBindingSource.Find("usuario", Me.TextBox1.Text.Trim) If Me.ClavesBindingSource.Current("password").ToString.Trim = Me.TextBox2.Text.Trim Then objclaves.modificar(Me.TextBox1.Text.Trim, Me.TextBox3.Text.Trim, "0") Me.ClavesTableAdapter.Fill(Me.GanadoDataSet.Claves) Me.Hide() Else MsgBox("Contraseña incorrecta...") End If End If End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Hide() End Sub

Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

If InStr(1, " ", e.KeyChar) <> 0 Then e.Handled = True

End If End Sub

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress

If InStr(1, " ", e.KeyChar) <> 0 Then e.Handled = True

End If End Sub End Class

CÓDIGO FORMULARIO LOGINFORM Imports System.Data

Imports System.Data.SqlClient Public Class LoginForm

‘Declara variables de conexión a la base de datos Private myCnn As SqlConnection

Private cmd As SqlCommand

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

‘Verifica que los cuadros de texto no estén vacíos

If Me.UsernameTextBox.Text.Trim = "" Or Me.PasswordTextBox.Text.Trim = "" Then

MsgBox("Ingrese nombre de usuario y contraseña...") Else

If Me.TclavesBindingSource.Count <> 0 Then Me.TclavesBindingSource.MoveFirst() ‘Busca y compara los datos del Usuario

Me.TclavesBindingSource.Position = Me.TclavesBindingSource.Find("usuario", Me.UsernameTextBox.Text.Trim) If Me.TclavesBindingSource.Current("usuario").ToString.Trim = Me.UsernameTextBox.Text.Trim Then If Me.TclavesBindingSource.Current("password").ToString.Trim = Me.PasswordTextBox.Text.Trim Then

‘Guarda el nombre de Usuario en la variable vrusu vrusu = Me.UsernameTextBox.Text.Trim vrper = Me.TclavesBindingSource.Current("permisos").ToString.Trim If vrper.Trim = "0" Then FrmMDI.RegistrarToolStripMenuItem.Visible = False FrmMDI.BackupToolStripMenuItem.Visible = False End If

‘Si el registro es correcto ejecuta el formulario del menú principal Me.Hide()

FrmMDI.Show() Else

MsgBox("Usuario y/o Password Incorrectos...") End If

Else

MsgBox("Usuario y/o Password Incorrectos...") End If

Else

MsgBox("No se han registrado usuarios...") End If

End If End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click

‘Finaliza la ejecución del sistema End