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