Limpieza de código y modos de funcionamiento

Nuestro programa tiene mucho código. Por una parte hay código procedente del propio programa base sobre el que empezamos a desarrollar, facedetect. En el que se cargan las librerías adecuadas, se inicializa el sistema, se establece la comunicación con la cámara…

Por otra parte tenemos código debido a la función de entrenamiento de haartraining, es decir, código para obtener muestras, con las cuales elaboramos modelos con haartraining que posteriormente utilizamos para detectarnos.

Ese es el tercer tipo de código, el de detección, el de cargar todos los clasificadores y aplicarlos en batería para posteriormente tomar decisiones sobre nuestras salidas por la pantalla y a través de Groucho.

Y finalmente está el código con el que controlamos a Groucho, que tampoco es nuestro, pero también está mezclado con el resto.

Para hacer el programa más comprensible, procedimos a una limpieza del programa. En primer lugar eliminamos las partes de código que usamos en algún momento de nuestro desarrollo pero que ya no usamos. Posteriormente procedimos a comentar las partes de código que a veces usábamos y a veces no, por ejemplo las que nos sacan imágenes de parte de la cara, que pueden resultar útiles para definir rectángulos a partir de los cuales obtener muestras para haartraining.

A continuación ordenamos el código, ordenamos la definición de las variables por su funcionalidad, renombramos algunas de ellas para que su función fuese más comprensible, etc… Todo esto pone de manifiesto las ventajas de tener un código ordenado desde el principio.

Finalmente decidimos separar la parte de haartraining de la de detección. Para ello, simplemente hicimos uso de ‘define’, ‘ifdef’ y ‘endif’, que son una serie de sentencias de C en las que lo que esté entre ‘ifdef’ y ‘endif’ se ejecutará solo en caso de que esté definido lo que ponemos después de ‘ifdef’ mediante la sentencida ‘define’. Así fuimos tomando las partes de código de haartraining y metiéndolas dentro de este tipo de estructuras. Este sistema nos permite ejecutar el código en modo detección o en modo generación de muestras simplemente comentando o descomentando una sola sentencia ‘define’, por contraposción a comentar y descomentar bloques enteros de código lo cual resultaba engorroso y poco elegante.

Un saludo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: