{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Detección de Movimiento de la Palma usando Flujo Óptico\n", "\n", "Este laboratorio es parte del [Currículo de IA para Principiantes](http://aka.ms/ai-beginners).\n", "\n", "Considera [este video](../../../../../../lessons/4-ComputerVision/06-IntroCV/lab/palm-movement.mp4), en el que la palma de una persona se mueve hacia la izquierda/derecha/arriba/abajo sobre un fondo estable.\n", "\n", "**Tu objetivo** será usar Flujo Óptico para determinar qué partes del video contienen movimientos hacia arriba/abajo/izquierda/derecha.\n", "\n", "Comienza obteniendo los fotogramas del video como se describe en la lección:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ahora, calcula los fotogramas de flujo óptico denso como se describe en la conferencia, y convierte el flujo óptico denso a coordenadas polares:\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Construir un histograma de direcciones para cada fotograma del flujo óptico. Un histograma muestra cuántos vectores caen dentro de ciertos intervalos y debería separar las diferentes direcciones de movimiento en el fotograma.\n", "\n", "> También podrías querer eliminar todos los vectores cuya magnitud esté por debajo de cierto umbral. Esto eliminará pequeños movimientos adicionales en el video, como los de los ojos y la cabeza.\n", "\n", "Representa los histogramas para algunos de los fotogramas.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Al observar los histogramas, debería ser bastante sencillo determinar la dirección del movimiento. Necesitas seleccionar aquellos intervalos que correspondan a las direcciones arriba/abajo/izquierda/derecha, y que estén por encima de cierto umbral.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "¡Felicidades! Si has realizado todos los pasos anteriores, ¡has completado el laboratorio!\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n---\n\n**Descargo de responsabilidad**: \nEste documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.\n" ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4, "coopTranslator": { "original_hash": "153d9e417e079bf62f8f693002d0deaf", "translation_date": "2025-08-31T16:08:45+00:00", "source_file": "lessons/4-ComputerVision/06-IntroCV/lab/MovementDetection.ipynb", "language_code": "es" } }, "nbformat": 4, "nbformat_minor": 2 }