Entradas

Mostrando entradas de marzo, 2014

Widget con temas

Imagen
Si hemos sido algo observadores hemos notado la apariencia un poco rustica de los widgets que hemos estado viendo, pero debemos saber que podemos usar widgets con temas, en este caso el tema del sistema operativo que estemos usando, re3cor5demos que tkinter funciona en sistemas operativos como Windows, Linux y Mac.

Menú Principal

Imagen
Normalmente todas las aplicaciones cuentas con un menú principal ubicado en la parte superior de la ventana, con tkinter también podemos añadir este tipo de menús. A este menú le podemos asociar acciones a cada item o submenu que agregamos a través de un command.

Ejecutar un .exe (Iniciar un Proceso)

.Net cuenta con la clase Process para la ejecución y control de procesos en una aplicación, esto lo podemos aplicar cuando deseamos que nuestra aplicación ejecute un proceso o programa externo .exe, para tener mayor control sobre la ejecución del .exe podemos usar ProcessStartInfo en conjunto con la clase mencionada anteriormente.

Método de Descomposición LU

Imagen
La descomposición de LU es una técnica que consta de dos pasos, la descomposición de LU y la sustitución; Al igual que la técnica de gauss requiere de la aplicación de técnicas de pivoteo para evitar la división por cero y evitar errores en los resultados.
Paso 1: descomposición de L y U, es posible utilizar gauss para descomponer nuestro sistema de ecuaciones en una matriz L y otra U. Matriz L      

F21 = a21 / a11
F31 = a31 / a11
F32 = a’32 / a’22

Matriz U obtenida mediante eliminación de gauss


d1, d2, y d3 permanecen intactos.
Algoritmo escrito en C# que realiza la descomposición de LU, en este algoritmo que se realiza técnica de pivoteo por lo que se pueden producir errores al dividir por cero. ///<summary>
/// Algoritmo que realiza descomposicion LU
///</summary>
///<param name="matrixU">matriz que contiene el sistema de ecuaciones a resolver (completo)</param>
///<param name="matrixL">matriz vacia que contendra (L) del mismo tamañ…

Gauss Jordan

Imagen
Es una variante del método de gauss, en lugar de obtener una matriz triangular obtendremos una matriz identidad, por consiguiente no será necesario hacer sustitución hacia atrás para obtener nuestra solución.
Ejemplo

Normalizar la primera fila hacer 1 el primer elemento dividiendo toda la fila entre 3
Hacer ceros la primera columna Fila pivote = primera fila
k = 0.1 * 1, la segunda fila será  = segunda fila – (k * fila pivote)
k = 0.3 * 1, la tercera fila será  = tercera fila – (k * fila pivote)

Se repite el mismo proceso para la segunda columna (fila pivote = segunda fila) y la tercera (fila pivote = tercera fila) para obtener la solución siguiente:
Algoritmo escrito en C# para la solución de un sistema de ecuaciones por el método de gauss-jordan

privatevoid GJ(ref double[,] matrix, int filas, int columnas)
{
for (int fpivot = 0; fpivot < filas; fpivot++)
{

double nor = matrix[fpivot, fpivot];

for (int i = 0; i < columnas; i++)
{
matrix[fpivot, i] = matrix[fpivot, i] / nor;
}

int f = …

Gauss Seidel y Jacobi

Imagen
El método de gauss seidel y el metodo de jacobi son similares, ambos usados para resolver sistemas de ecuaciones lineales, el método de gauss seidel debe su nombre a los matemáticos Carl Friedrich Gauss y Philipp Ludwig von Seidel mientras que el método de jacobi al matemático alemán Carl Gustav Jakob Jacobi. Gauss-Seidel Este método iterativo es el más comúnmente usado. Debe asegurase de que los elementos de la diagonal no sean ceros para que se pueda resolver por este método. Ejemplo si se tiene un sistema  de tres ecuaciones, X1 se puede despejar de la primera ecuación, X2 de la segunda y X3 de la tercera.



Ahora se puede empezar a resolver para encontrar X1 suponemos que X2 y X3 son ceros, resolvemos para X2 ya tenemos X1 que lo encontramos anteriormente y suponemos que X3 es cero, para encontrar X3 solo resolvemos pues ya tenemos X1 y X2. El proceso se repite solo que utilizado los valores que ya tenemos de X1, X2, X3 hasta que la solución converja lo mas cercano a los valores reales. …

Clasificación de Genero (FaceRecognizer)

Imagen
FaceRecognizer a parte de reconocimiento facial lo podemos usar para clasificar el genero de un rostro o sea determinar si es hombre o mujer, usaremos el algoritmo fisherfaces que entrenaremos con una base de datos de rostros correspondientes a hombres y mujeres.

Cuadros de Dialogo tkinter

Imagen
tkinter cuneta con cuadros de dialogo ya sea para mostrar al usuario alguna información o pedirle que introduzca datos que requiera la aplicación, existen dos tipos, los Modal bloquean la interfaz grafica de usuario (GUI) hasta que se cierre y los NonModal que interactúan con el usuario sin interferir con la ventana principal.

Reconocimiento Facial

Imagen
OpenCV cuenta con la clase FaceRecognizer para facilitarnos el reconocimiento de un rostro presente en una imagen, haremos uso de los clasificadores en cascada para detectar el rostro y luego lo identificaremos con FaceRecognizer usando alguno de los algoritmos disponibles como: EigenFace, FisherFace y LBPH. Nuestro proyecto de Reconocimiento Facial usara LBPH.