Entradas

Mostrando entradas de 2017

Intercambio de caras

Imagen
Seguimos estudiando las posibilidades que nos brindan el uso de las bibliotecas Dlib y OpenCV, en esta ocasión vamos a construir una aplicación que nos permitirá intercambiar los rostros de dos personas, aprenderemos a utilizar las funciones cv::convexHull(...) y la clase Subdiv2D, aplicaremos máscaras y utilizaremos la ya conocida función cv::seamelessClone(...).

Estimar postura 3D

Imagen
En el tutorial anterior aprendimos a extraer los landmarks de un rosto, ahora utilizaremos esa información para intentar estimar los distintos ángulos de rotación que determinan la pose de la cabeza, con esto podremos saber, por ejemplo, la dirección en la que esta mirando una persona, con esto podríamos construir una aplicación que monitoreé a un conductor y le envié una alerta cuando este quite su mirada de la carretera.

Face Landmarks Detector con Dlib y OpenCV

Imagen
Dlib en una biblioteca multipropósito que puede ser usada desde C++ y Python, contiene muchos algoritmos de aprendizaje de máquinas, compresión, análisis de imágenes, entre otras, esta librería es de código abierto y debemos compilarla para poder utilizarla, para nuestro tutorial utilizaremos OpenCV para la detección de rostros y Dlib para la obtención de las partes relevantes de la cara, ojos, boca, nariz, etc., cada una de estas partes definida por un conjunto de puntos preestablecidos.

Validar XML con un archivo XSD

En el tutorial pasado aprendimos a generar las clases Java a partir de la definición de un archivo XSD, por lo que ahora veremos como generar el archivo XML usando estas clases y verificar si el contenido de las mismas está conforme a lo definido por el .xsd, para trabajar este tutorial usaremos la tecnología JAXB y el IDE Netbeans.

Generar clases a partir de XSD en NetBeans

Imagen
En el presente tutorial veremos como podemos generar las clases requeridas por esquema XSD, como sabes un archivo .xsd define las reglas que se deben cumplir para que un documento XML sea válido, por ejemplo, el orden de los elementos, los tipos y patrones de los mismos, entre otras cosas, lo que haremos será tomar este archivo he indicarle a NetBeans que genere las clases apropiadas para el mismo.

FloodFill OpenCV

Imagen
El algoritmo floodfill es usado en muchos programas de edición de imágenes, como: Paint, GIMP, etc., para cambiar el color de relleno de una figura, en OpenCV disponemos de la función cv::floodFill() que implementa dicho algoritmo, podemos usarlo para rellenar una figura con un determinado color, o para seleccionar una área que cumpla con el rango de colores establecido.

Qt Introducción a los Estilos CSS

Imagen
El framework Qt nos facilita las tareas de creación de estilo y diseño de nuestras aplicaciones por medio de CSS, aunque existen pequeñas diferencias la mayoría de los conceptos de la especificación CSS 2.0 se pueden aplicar en Qt, podremos cambiar el estilo de un widget cambiando sus propiedades, usaremos los selectores para determinar ha cuál de los elementos deseamos estilizar, veamos como se hace.

Heroku Postgres conexión a datos

Imagen
En el tutorial anterior explicamos como desplegar una aplicación desarrollada en Spring Boot en la plataforma Heroku, normalmente el siguiente paso en agregar la conexión a datos, vamos a explicar como activar el complemento para soportar una BD Postgres, aunque la plataforma muchos otros motores de datos, veremos también como enviar consultas, ya sea para crear tablas, insertar datos, etc., y por supuesto que mostraremos el código Java requerido para crear la conexión.

Detección de líneas y círculos usando la transformada de Hough con OpenCV

Imagen
La Transformada de Hough, técnica propuesta y patentada por Paul Hough en 1962 es comúnmente usada en aplicaciones de visión por computador para detectar formas geométricas como círculos o líneas, OpenCV implementa esta técnica a través de dos funciones: cv::HoughCircles() y cv::HoughLines(), en el presente tutorial veremos como podemos utilizar ambas funciones para detectar las respectivas formas.Detección de LíneasPara poder detectar líneas tenemos dos implementaciones, cv2.HoughLines() y cv2.HoughLinesP(), antes de aplicar cualquiera de ellas, convertiremos la imagen a escala de grises y detectaremos los bordes, para lo que utilizaremos la función cv2.Canny(), veamos un ejemplo sencillo en Python 3.x.importcv2importnumpyasnp img = cv2.imread('sudoku.png') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, 150, apertureSize =3) lines = cv2.HoughLines(edges, 1, np.pi/180, 200) for line in lines: rho, theta = line[0] a = np.cos(theta) b = n…

Desplegar aplicación Spring Boot en Heroku

Imagen
Ha la fecha hemos dedicado varios tutoriales a la tecnología Spring Boot, ahora lo que estudiaremos será el proceso para desplegar nuestra aplicación, es decir, ponerla en marcha en un ambiente de producción, para esto requerimos una plataforma en la nube que puede alojar nuestra aplicación, por ejemplo, Heroku es uno de ellos, puedes crear una cuenta gratuita que nos servirá para hacer pruebas.Cuando ya tengas tu aplicación lista para desplegar, deberás subirla a GitHub, este en uno de los métodos que podemos usar, existen otras maneras de hacerlo, las veremos en próximos tutoriales, esta es la aplicación que utilizaremos: DeploySpring.Inicia sesión con tu cuenta y dirígete a la siguiente URL en donde podrás crear una nueva aplicación: https://dashboard.heroku.com/new-app, podrás ver algo como esto:Indica un nombre válido, establece la región y presiona el botón Create app.Cuando termines dirígete a https://dashboard.heroku.com/apps aquí podrás seleccionar la app que acabas de crear,…

QListWidget control Qt

Imagen
Un QListWidget nos permite mostrar una lista de elementos, el usuario puede seleccionar uno o varios de ellos, cada elemento estará representado por un objeto QListWidgetItem, podremos añadir o remover elementos según sea necesario, los elementos seleccionados por el usuarios pueden ser varios o solo uno, dependiendo del modo de selección que configuremos.

Dibujos 2D en Qt

Imagen
El framework Qt nos permite dibujar formas, textos, imágenes, y otros, usando un objeto QPainter, estos dibujos pueden realizarse sobre la superficie de un objeto QWidget, QPixmap, QImage, y otros, es posible aplicar transformaciones como: escalado, rotación, traslación, etc., también tenemos disponibles los efectos gráficos, sombras, blur, etc., todo esto acelerado por hardware a través de OpenGL si el sistema lo soporta.

QTableWidget widget Qt

Imagen
En el tutorial anterior tratamos el tema de acceso a datos con Qt, aprendimos a conectarnos y consultar datos de las bases de datos SQLite  y MySQL, los resultados de las consultas los mostramos en consola, ahora veremos el widget QTableWidget que nos permite mostrar datos en formato tabla, filas y columnas, los utilizaremos para visualizar el contenido de nuestra base de datos, usaremos como base el tutorial antes mencionado.

JavaFX Pack de iconos

Imagen
Usualmente deseamos darle un buen aspecto a nuestras aplicaciones JavaFX, por ello los iconos que utilicemos son parte importante de este aspecto, existe una pequeña pero muy interesante librería llamada ikonli que nos permite utilizar los packs de iconos como: FontAwesome, Icomoon, Devicons, etc., puede ser utilizada en Swing como en JavaFX, en este tutorial nos centraremos en el uso sobre esta última API.

JavaFX BarChart

Imagen
Para crear una gráfica de barras con la API JavaFX utilizaremos las clase BarChart, los datos se pueden representar de manera horizontal o vertical, la longitud de las barras es proporcional al correspondiente valor del conjunto de datos, para representar cada uno de los ejes de la gráfica necesitaremos un objeto CategoryAxis y otro NumberAxis, el primero contiene datos de tipo texto y el segundo datos numéricos, nuestra clase debe contener uno de cada uno.

Detección de contornos con OpenCV Python

Imagen
Un contorno es un conjunto de puntos que conectados unos con otros de manera consecutiva forman una figura que rodea un objeto determinado, la detección de contornos en OpenCV se aplica sobre imágenes binarias, la figura obtenida puede ser analizada posteriormente para determinar cuál es el objeto que hemos detectado, para obtener los contornos utilizaremos la función findContours(), mientras que drawContours() nos ayudará a dibujarlos.

JavaFX Google Material Design

Imagen
Aplicar los estilos Google Material Design a una aplicación JavaFX es una tarea sencilla con la librería llamada JFoenix, para utilizarla requerimos como mínimo la versión Java 1.8 u60, esta implementación tiene soporte para la aplicaciones estándar de escritorio y para dispositivos móviles como Android, además se integra perfectamente con con el diseñador FXML Scene Builder.

Qt 5.x Acceso a base de datos

Imagen
El acceso a una base de datos es un elemento importante al momento de desarrollar una aplicación de cualquier tipo, por ello el Framework Qt nos provee el módulo SQL el cuál nos facilita el proceso de conexión y consulta de datos, este módulo soporta oficialmente las bases de datos: SQLite, MySQL, ODBC, y PostgreSQL.

PieChart JavaFX

Imagen
El PieChart es una gráfica circular en donde se muestran las proporciones de los valores usados para generar la gráfica, los datos contenidos en un PieChart están definidos por la clase PieChart.Data que usualmente contiene un nombre y un valor, cada objeto de esta clase representa una sección de la gráfica, para nuestra demostración vamos a representar las temas y la cantidad de publicaciones de nuestro blog, los datos no son reales.

QComboBox y QSlider

Imagen
El widget QComboBox combina un botón y una ventana emergente en donde se muestran una lista de elementos al presionar sobre el botón antes mencionado, este le permite al usuario seleccionar un elemento entre el conjunto disponible, este widget también puede ser editable, es decir el usuario podrá modificar el contenido de cada elemento en la lista, si así lo disponemos.

Spring Facebook API

Imagen
Seguimos estudiando el módulo Spring Social esta vez le toca el turno a la API de Facebook, usaremos el módulo spring-social-facebook para integrar una aplicación web desarrollada con Spring Boot con los servicios de esta red social, para nuestra demostración consultaremos el perfil de usuario y las publicaciones del mismo, al igual que el tutorial anterior referente a Twitter también es necesario registrar un App de Facebook.Lo primero es registrar la aplicación, para esto nos dirigimos a la dirección: https://developers.facebook.com/Debes hacer clic en el botón que se encuentra en la parte superior derecha, puede ser Empezar o Crear Aplicación, dependiendo de si es la primero vez que creas una aplicación puede aparecer uno u otro, también es posible de que se muestre otro botón si ya tiene una aplicación creada, en el cuadro que se muestra deberás indicar el nombre de la aplicación y una dirección de correo electrónico.Una vez rellenes los datos requeridos presiona el botón Crear id…

QLineEdit y QTextEdit tutorial Qt

Imagen
Ambos widgets QLineEdit y QTextEdit son utilizados para obtener un texto por parte del usuario, el primero solo permite una sola línea de texto, el segundo por el contrario maneja múltiples líneas de texto, ambos soportan la s características de copiar y pegar, arrastrar y soltar, y revertir cambios, entre otras cosas.

Spring Twitter API

Imagen
El uso de las redes sociales en nuestras aplicaciones web, hoy en día es algo imprescindible, por ello hemos decidido dedicar un tutorial a mostrar el modulo Spring Social, desarrollado con el fin de facilitar el proceso de integración de las distintas redes sociales a nuestras aplicaciones web, en este primer tutorial estudiaremos la API de Twitter, crearemos una aplicación capaz de integrarse con esta tecnología, podremos visualizar las publicaciones, consultar seguidores, publicar Tweets, etc., y mucho más.Para hacer el desarrollo más sencillo utilizaremos el Framework Spring Boot, más Maven como herramienta de construcción y administración de dependencias.

Hola mundo en Java

Imagen
Tutorial de introducción al lenguaje de programación Java, como primer paso crearemos el clásico programa hola mundo en Java, el cuál inicia una aplicación en consola y muestra el correspondiente mensaje, para este tutorial usaremos el IDE NetBeans 8.x, aunque puedes seguirlo con cualquier otro, el proceso de creación del proyecto y compilación del código es similar.

QPushButton & QLabel widgets Qt

Imagen
El widget representado por la clase QPushButton del Framework Qt está diseñado para responder a la interacción del usuario hecha mediante los clic del ratón, es una área rectangular que puede contener un texto, un icono o ambos, un QPushButton emite el signal clicked() cuando se presiona el mismo, aunque también puede emitir otros como: pressed() and released(), aunque usualmente utilizamos el primero.

Acceso a la webcam con OpenCV

Imagen
Usando la biblioteca OpenCV podemos acceder a la cámara web o cualquier otro dispositivo de captura que tengamos instalado en nuestro sistema, cada una de las imágenes capturadas podrán almacenarse para su análisis o procesamiento en tiempo real si así lo deseamos, tenemos disponible una clase que nos servirá para guardar los videos previamente capturados y procesados, el formato de almacenamiento depende de las características habilitadas, pero puede ser MP4, AVI, WMV, etc., y otros si tenemos los códec.Webcam desde OpenCVPara acceder a la webcam lo hacemos de manera parecida a como mostramos un video solo que en lugar de especificar un archivo de video a la clase VideoCapture indicaremos el número de dispositivo o índice de cámara que deseamos usar, cero si tenemos solo una cámara. Código C++#include<opencv2\opencv.hpp>usingnamespace cv; intmain() { VideoCapture cap(0); if(!cap.isOpened()) return-1; namedWindow("webcam"); for(;;) { …

JDBC Metadatos

Imagen
Los metadatos son información sobre los datos, esta vez no vamos a consultar los datos de una BD, lo que deseamos obtener es información de como se estructura la base de datos en si, es decir, las tablas que posee, las columnas que conforman cada una de las tablas, los procedimientos almacenados, etc., o incluso si lo deseamos podemos obtener información sobre el servidor de datos.

Histogramas OpenCV Python

Imagen
Un histograma es una gráfica en donde se muestra la frecuencia con las que aparecen los distintos niveles de intensidad de una imagen a escala de grises, normalmente el nivel de intensidad está en el rango de 0 a 255, en donde el valor 0 representa los color negro y 255 el color blanco, utilizando el histograma de una imagen podemos modificar sus características, por ejemplo, el brillo y contraste, existen además otras aplicaciones que veremos más adelante.

Conectar a base de datos MySQL con Java

Imagen
En todo proceso de desarrollo de una aplicación se requiere usualmente conectar a base de datos MySQL, es el servidor de datos que utilizaremos en este caso será MySQL aunque el mismo puede variar, pero el proceso es bastante similar, solo deberemos cambiar los datos de conexión, en este tutorial nos conectaremos a la base de datos usando la API JDBC del lenguaje de programación Java, como IDE haremos uso de NetBeans 8.x.

Instalar MySQL en Windows

Imagen
El presente tutorial muestra paso a paso el proceso de instalación del servidor MySQL en el sistema Windows, primero debemos descargar el respectivo instalador, lo puede obtener en este enlace: instalador MySQL, una vez tengas el archivo ejecútalo y sigue estos pasos para instalarlo en tu sistema:

Pagination control JavaFX

Imagen
El control Pagination de JavaFX puede ser utilizado para mostrar un conjunto de elementos uno a uno, por ejemplo, para nuestra demostración usaremos dicho control para mostrar una serie de imágenes seleccionadas por el usuario de su sistema de archivos, la imágenes seleccionadas se presentarán una a una y el usuario podrá navegar entre los distintos elementos.

Integrar MyBatis a Spring Framework

Anteriormente mostramos el uso del Framework MyBatis para agilizar el desarrollo de aplicaciones con acceso a datos, ahora nos centraremos en la integración de MyBatis a Spring, aprenderemos los pasos necesarios para integrar esta tecnología al contenedor IoC de Spring, la integración admite manejo de transacciones, transformación de excepciones, y todo lo requerido para el funcionamiento de ambas bibliotecas.

ColorPicker control JavaFX

Imagen
El control ColorPicker es utilizado para seleccionar un color, este puede ser establecido usando el ratón, haciendo clic sobre el color deseado, o indicando el color en uno de los formatos admitidos, HSB, RGB, Web, este control es una extensión del ComboBox podemos crear una instancia usando su constructor vacío o la sobre carga que permite establecer el color inicial, veamos como se usa.

Signals & Slots en Qt

Imagen
En todos los framework diseñados para desarrollar GUIs debemos tener un mecanismo para responder a los eventos producidos por los componente de la interface de usuario y también para emitir dichos eventos, en Qt 5.x contamos con los Signals & Slots para tal propósito, por ejemplo, al presionar el botón Salir se genera un signal, si deseamos que dicho botón cierre la ventana entonces debemos establecer la función close() de la ventana como slot.

MyBatis consultar base de datos

Imagen
El framework MyBatis está diseñado para facilitar y agilizar el acceso a bases de datos SQL, soporta procedimientos almacenados y mapeos avanzados, MyBatis puede ser configurado usando un archivo XML y desde código Java mediante anotaciones, podemos usar la opción de nuestra preferencia o combinar ambas, el presente tutorial se centra en el uso de las anotaciones en próximas publicaciones trataremos la configuración mediante archivos XML.

Instalar servidor HSQLDB

Imagen
Dedicaremos este pequeño tutorial al servidor de datos HSQLDB, veremos el proceso para poder iniciarlo en modo servidor, además usaremos la pequeña aplicación con GUI que esta disponible para acceder al servidor y poder manipular los datos del mismo, adicionalmente agregamos los datos de prueba que se incluyen en esta aplicación.

Umbralización adaptativa con OpenCV Python

Imagen
En el tutorial previo hablamos sobre el proceso de umbralización, y cómo utilizar el mismo para separar los objetos del fondo de la imagen, en aquella ocasión usamos un valor de umbral fijo, pero que sucede si el color de fondo o la iluminación de la escena no es uniforme, resultaría difícil segmentar los objetos usando un umbral fijo, en ese caso debemos contemplar otras técnicas como umbralización adaptativa que procederemos a estudiar.

Qt Layouts para posicionar los QWidget

Imagen
Dedicaremos este tutorial ha estudiar el posicionamiento de los widgets en la ventana de nuestra aplicación, en Qt disponemos de diversos modos para realizar esto, entre ellos: posicionamiento absoluto, con él debemos indicar la posición y dimensiones de cada uno de los controles que ubicaremos en la GUI, otra alternativa es usar los layout manager, ellos se encargará de posicionar y redimensionar los controles de manera automática.

DatePicker Control JavaFX para manejar fechas

Imagen
El control DatePicker de JavaFX es un ComboxBox con la apariencia rediseñada, la fecha se puede cambiar escribiendo en el cuadro de texto directamente o seleccionando la fecha adecuada mediante el calendario que se muestra al desplegar el pop-up, en la primera fila ubicaremos el mes y año, en la segunda se establece el día.

Qt Tutorial de introducción

Imagen
Tutorial de introducción al uso del framework Qt 5.x enfocado en la creación de Interfaces Gráficas de Usuario (GUI) en este primer documento estudiaremos las ventanas y sus diversos componentes, aprenderemos a mostrarlas, configurarlas, añadir elementos en ella y demás, para este propósito utilizaremos la clase QWidget, la cuál es la base para todos los elementos de la UI en el framework.

Servlet en servidor embebido Jetty

Imagen
En el tutorial anterior vimos la manera de agregar un servlet a un servidor Apache Tomcat embebido, en esta ocasión haremos la misma tarea salvo que el servidor que utilizaremos esta vez será Jetty, el cual al igual que el servidor anterior también nos permite incluirlo en nuestros proyectos como un servidor embebido.

Servlet en servidor Tomcat embebido

Imagen
En temas anteriores hemos hablado de tecnologías como Spring Boot, Spark, y otras, que nos facilitan el desarrollo de micro servicios web, los interesante de las mismas, es que, estás utilizan un servidor embebido para contener sus aplicaciones, con esto evitamos la necesidad de crear un archivo WAR y desplegarlo en el servidor para poder ver nuestra aplicación en ejecución, dedicaremos este tutorial a aprender cómo incluir un este tipo de servidores en nuestro proyecto y desplegar un Servlet en él.

Spring Agregar un Servlet o Filtro Adicional

Imagen
Como sabemos el framework Spring MVC dispone de su propio Servlet, el llamado DispatcherServlet encargado de despachar las peticiones a los distintos controladores de nuestra aplicación web, pero que sucede si deseamos agregar nuestra propia implementación de un Servlet o tal ves un filtro, Spring nos permite agregar filtros o servlets adicionales de la menara que mostramos en seguida.

J2HTML Crea código HTML desde Java

Imagen
La librería J2HTML nos permite generar código HTML utilizando el lenguaje Java, se utiliza de una manera muy sencilla y similar a HTML, antes de empezar solo debemos agregar la dependencia y luego importar TagCreator, veamos una demostración.

Umbralización en OpenCV

Imagen
La umbralización es uno de los métodos más simples y eficientes de segmentación, segmentar quiere decir, separar o extraer las regiones de una imagen que nos interese estudiar o analizar, para lograr separar la región deseada se establece un valor que define el umbral, los pixeles cuya intensidad superen el umbral serán rechazado o aceptados, según sea el caso.

Sql2o Simplifica el acceso a datos JDBC

Sql2o es un pequeño framework Java que ayudará a simplificar el acceso a datos, esta librería utiliza internamente la API JDBC para lanzar las consultas contra la base de datos, la misma realizará el trabajo repetitivo, cómo: manejo de excepciones, mapeo de datos, etc., esto nos permite centrarnos en lo que realmente nos interesa y agiliza el proceso de desarrollo ya que debemos escribir menos código.

Instalar Qt Framework en Windows

Imagen
Qt es un framework diseñado para desarrollar aplicaciones C/C++ con interfaces de usuario enriquecidas destinadas para sistemas móviles, embebidos o aplicaciones de escritorio, este framework puede ser utilizado con diversos compiladores, entre ellos, Visual Studio, MinGW, las aplicaciones desarrolladas también pueden estar destinadas a diversas plataformas, cómo: Windows, MacOS, iOS, Linux/X11, Android, Windows Runtime.

Subir archivos al servidor

Imagen
Al momento de crear una aplicación web es normal que nos encontremos con la necesidad de almacenar archivos en el servidor, en este tutorial veremos cómo Spring MVC soporta la subida de archivos, en este ejemplo admitiremos la subida de imágenes que serán almacenadas en la base de datos y que luego recuperaremos para mostrarlas en la página correspondiente.

Tutorial Spring AOP

Imagen
La programación orientada a aspectos (AOP) es un paradigma de programación que intenta formalizar y representar de forma concisa los elementos que son transversales a todo el sistema, uno de estos elementos puede ser el sistema de logging (registro de eventos), mediante la utilización de la AOP es posible insertar código en los componentes ya construidos de nuestra aplicación sin necesidad de modificar el código existente.

Flujo óptico Gunnar Farneback

Imagen
El en tutorial anterior estudiamos el flujo óptico, vimos que es y mencionamos algunas de sus aplicaciones, además construimos una pequeña aplicación usando el método creado por Lucas-Kanade, esta vez veremos la función calcOpticalFlowFarneback(...) la cual calcula el flujo óptico mediante el algoritmo propuesto por Gunnar Farneback en el año 2003, este método a diferencia del anterior calcula el flujo para todos los puntos en la imagen.

Filtros de Servlet

Imagen
Los filtros son clases Java que nos permiten interceptar una petición y modificarla antes de que sea procesada por el Servlet, o interceptar una respuesta antes que que la misma sea enviada al cliente, para crear estas clases es necesario implementar la interface javax.servlet.Filter, la cual define los siguientes tres métodos que debemos implementar:

CVUI Construir GUI para OpenCV

Imagen
En muchas ocasiones cuando estamos desarrollando una aplicación requerimos cambiar los parámetros de entrada mientras nuestra aplicación se ejecuta, usualmente usamos el control trackbar, el ratón y el teclado para ello, esta opción no puede quitar mucho tiempo además de ser bastante limitado, otra opción que tenemos es recompilar la librería con Qt activado, esto requiere la inclusión de dicha librería, la opción más simple es utilizar cvui.h una pequeña biblioteca que nos permite generar GUI de manera rápida y sencilla sin tener que agregar dependencias externas.

Spark Tutorial de introducción

Imagen
Spark es un Framework Java diseñado para agilizar el proceso de creación de aplicaciones web, no requerimos inundar nuestro proyecto con anotaciones o con archivos de configuración XML, Spark hace uso del servidor embebido Jetty para alojar las aplicaciones por los que podemos iniciar fácilmente nuestras aplicaciones, veamos un pequeño ejemplo de inicio.

Flujo Óptico Lucas-Kanade con OpenCV

Imagen
El flujo óptico es una técnica de análisis de imágenes que permite determinar el movimiento de un objeto dentro de una secuencia de imágenes, se puede aplicar en: detección de movimiento, seguimiento de objetos, compresión de video, estabilización de videos, etc., la biblioteca OpenCV implementa varios métodos para calcular el flujo óptico, en este tutorial veremos el algoritmo propuesto por Lucas-Kanade.

Integrar Thymeleaf a un Servlet Java

Imagen
En el tutorial previo a este, vimos los Servlet, aprendimos a crearlos, instanciarlos y configurarlos, además escribimos el código necesario para responder a una petición HTTP GET, la respuesta a dicha petición la generamos usando la clase PrintWriter para escribir línea a línea el documento HTML de respuesta, esto suele ser un proceso tedioso, es ahí en donde entra Thymeleaf, esta tecnología nos permite generar un documento HTML dinámico a partir de una plantilla.

Servlet Java Tutorial básico

Imagen
Un Servlet es una programa Java que se ejecuta en un servidor web y que le permite al mismo generar contenido dinámicamente, el Servlet recibe una petición del usuario y genera una respuesta para la misma usualmente utilizando en protocolo HTTP, al momento de escribir este tutorial la versión más reciente de la especificación es la 3.1 la cual utilizaremos en nuestros ejemplos.

Ejecutar y depurar script Python en Visual Studio Code

Imagen
Usando Visual Studio Code podemos editar, ejecutar y depurar código Python, aprenderemos a utilizar esta herramienta para el desarrollo de nuestras aplicaciones, primero debemos instalar el complemento o extensión que nos permitirá trabajar con el interprete, luego debemos configurarlo para poder ejecutar y depurar los scripts.

Detección de esquinas con OpenCV

Imagen
La detección de esquinas tiene muchas aplicaciones en la visión por computador, entre ellas tenemos: creación de imágenes panorámicas, reconstrucción de objetos tridimensionales (3D), reconocimiento de objetos o figuras, estabilización de video, seguimiento, entre otras cosas.

Personalizar HTTP 403 Acceso denegado

Imagen
Hasta el momento ya hemos visto varios tutoriales del framework de seguridad Spring Security, seguro habrás notado que, si inicias sesión con un usuario he intentas acceder a una página a la cual el mismo no tiene permiso, verás el mensaje: Estado HTTP 403 - Access is denied, dedicaremos un par de minutos a estudiar la manera de personalizar este mensaje y mostrar una página más adecuada.

Recordar contraseña Spring Security

Imagen
La opción de recordar la contraseña le permitirá al usuario de nuestra web mantener su sesión abierta hasta que la misma sea cerrada manualmente o expire el tiempo definido, por ejemplo, el usuario podrá cerrar el navegar y luego puede abrirlo nuevamente y visitar la web sin tener que ingresar el nombre de usuario y contraseña, la sesión se cerrara solo cuando el usuario lo indique explícitamente o luego de haber transcurrido el periodo de tiempo de inactividad establecido.

Validación Vaadin Spring Boot

Imagen
Tercer tutorial de la serie Vaadin Spring Boot, en esta ocasión estará dedicado a la validación de los datos de entrada por medio de formularios, este framework nos proporciona una serie de clases para dicho propósito, también es posible crear nuestras propias implementaciones.

Transformaciones Geométricas

Imagen
Dedicaremos este tutorial al estudio de las transformaciones geométricas que podemos aplicar para cambiar la posición, rotación, escala, o inclinación de una imagen, este tipo de transformación no cambia el contenido de la imagen, la deformación es produce por un cambio en la posición de los pixeles que la componen.

Bloquear sesión con API Win32

Imagen
Usaremos la API de Windows para lograr bloquear la sesión de usuario de manera programática, en el sistema operativo Windows al presionar la combinación de teclas Crtl + Alt + Supr y luego presionar la opción bloquear logramos lo que ahora realizaremos desde programación C/C++, también veremos como podemos cerrar la sesión.

Uso del mouse y trackbar OpenCV

Imagen
El mouse y el trackbar son componentes de la GUI que nos ayudarán a interactuar con la aplicación OpenCV que estemos desarrollando, esta la biblioteca nos permite agregar manejadores de eventos para responder a eventos del ratón, de igual manera podemos agregar una barra desplazable a una ventana y obtener el valor de la misma.

Funciones de dibujo OpenCV Python

Imagen
OpenCV nos proporciona varias funciones que nos permiten dibujas diversas figuras de una menara rápida y sencilla, para este tutorial haremos uso del trackbar y el ratón para dibujar figuras como círculos, rectángulos y líneas, además veremos las funciones usadas para pintar elipses, polígonos y texto.Las funciones de dibujo tienen los siguientes parámetros en común:img: imagen sobre la que se desea dibujar, siempre es el primero que indicamos.color: color con que se debe pintar la figura.thickness: grosor del contorno de la figura, -1 rellena la figura, el valor por defecto es 1.lineType: define el tipo de línea,  por defecto es cv2.LINE_8, la opción cv2.LINE_AA usa anti-aliased por lo que el resultado será mejor, también puedes usar cv2.LINE_4.Para esta primera demostración crearemos una aplicación que nos permitirá dibujar líneas, círculos, y rectángulos usando el mouse, por ejemplo, para crear una línea hacemos clic izquierdo en el punto inicial de la misma y arrastramos hasta el …