Entradas

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.

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 …

Eventos en JavaFX

Imagen
Los eventos en la API JavaFX son parte importante en el desarrollo de una aplicación, un evento se produce cuando el usuario interactúa con l aplicación, por ejemplo, al hacer clic sobre un botón, al mover el mouse sobre algún Node de la escena, al presionar una tecla, o al seleccionar un elemento de una lista, entre muchas otras cosas.

Validación personalizada Spring MVC

Imagen
En tutoriales anteriores aprendimos a validar la entrada de los formularios usando el validador de Hibernate con las anotaciones correspondientes, una alternativa diferente es crear nuestra propia lógica de validación para un formulario en especifico, para utilizar esta funcionalidad necesitamos la anotación @InitBinder y además implementar la interface Validator.

Spring Boot Vaadin Hibernate JPA

Imagen
Seguimos trabajando sobre la integración del Framework Vaadin a Spring Boot, esta vez vamos a integrar la tecnología de persistencia Hibernate JPA, para este tutorial agregaremos la capa de datos a nuestra aplicación demostrativa y aprenderemos a mostrar los datos obtenidos en un elemento Grid<T> de la UI, también añadiremos un formulario que nos permitirá agregar, editar o eliminar un determinado elemento.

Integrar Vaadin a Spring Boot

Imagen
Integrar el Framework Vaadin a una aplicación web desarrollada usando Spring Boot, esta integración facilita el desarrollo de aplicaciones web, el módulo Spring MVC se encargará de manejar los componentes web, mientras que Vaadin será utilizado para la generación de la UI (Interfaz de Usuario), requerimos agregar el starter pom: vaadin-spring-boot-starter.

Spring Security JSP Taglib

Imagen
La tecnología o framework de seguridad Spring Security cuenta con taglib que nos proveen acceso a la información de seguridad del los usuarios y posibilitan el poder filtrar el contenido que se muestra al usuario en base a sus privilegios o tipo de usuario del que se trate, debemos agregar la siguiente dependencia: spring-security-taglibs.

Manipular pixeles OpenCV Python

Imagen
En este tutorial veremos como aplicar las operaciones básicas sobre imágenes cargadas en memoria mediante OpenCV, veremos cómo acceder a los pixeles de una imagen y modificarlos, aprenderemos a seleccionar una región de interés (ROI) y mostraremos como trabajar con los distintos canales de una imagen.

JFileChooser Java Swing

Imagen
El cuadro de dialogo JFileChooser de la API Java Swing nos permite ubicar y seleccionar de manera fácil y rápida un archivo o carpeta que se encuentre dentro del sistema de archivos de nuestro PC, para utilizar esta clase debemos importar: javax.swing.JFileChooser.

Spring Security con Hibernate JPA

Imagen
En tutoriales anteriores estudiamos el formulario de inicio de sesión, ahora, en este tutorial añadiremos la página de registro de usuarios, también aprovecharemos para ver como integrar la tecnología de persistencia Hibernate JPA a Spring Security, usaremos una base de datos HSQLDB para el proyecto, y además aprenderemos a utilizar la interface UserDetailsService para extraer los datos de autenticación y autorización desde los respectivos repositorios JPA.