Introducción a la visión por computador: desarrollo de aplicaciones con OpenCV

بواسطة: edX

Overview

Con este curso, el alumnado será capaz de aprender y entender los conceptos básicos de visión por computador, además de implementar de forma práctica algoritmos de análisis de imágenes a través de computadores utilizando la biblioteca de funciones OpenCV.

El Análisis de Imágenes o Visión por Computador es la capacidad de los ordenadores de analizar imágenes capturadas por una cámara y obtener la información de los objetos que se hayan presentes en esa escena. En la actualidad, constituye uno de los campos de la Inteligencia Artificial con un mayor ritmo de desarrollo y que más aplicaciones nuevas está presentando.

Hasta hace pocos años las cámaras digitales solo estaban implantadas en el ambiente industrial. Allí se utilizan con dos fines:

  1. Lograr una mayor interacción entre los robots industriales y el entorno que los rodea.
  2. Conseguir un control de calidad total de los productos fabricados.

Con la aparición de nuevo hardware, cámaras y algoritmos, el mundo de la Visión por Computador ya no se centra exclusivamente en el ambiente industrial sino que se extiende a los smartphones, la industria del videojuego e incluso a los coches.

Otra característica que ha cambiado recientemente es que hasta hace poco tiempo las técnicas de análisis de imágenes eran accesibles solamente a un reducido número de especialistas. Los programas que se utilizaban eran costosos, con poca documentación y que exigían equipos informáticos de gama alta. Esto es ahora muy distinto; en concreto la biblioteca OpenCV, que se verá en el curso, constituyen una solución de altísimo nivel, gratuitas, portables a diversos sistemas operativos y equipos, ordenadores o teléfonos inteligentes y que constituyen de facto un estándar en la comunidad científica.

Para que el alumnado pueda realizar diversas aplicaciones relacionadas con la Visión por Computador, a lo largo del curso se revisan los tipos básicos de elementos y sensores, viéndose las ventajas e inconvenientes de cada uno de ellos, así como las técnicas más usuales de procesar la información que proveen. A partir de dicho procesamiento de la información y de la extracción de características, se presentan diversos métodos para el reconocimiento de patrones.

Syllabus

SEMANA 1
Tema 1. Introducción a la Visión por Computador.
Tema 2. Óptica.
Tema 3. Cámaras digitales.
Tema 4. La biblioteca OpenCV.
Tema 5. Herramientas software del curso.
Tema 6. Escribiendo la primera aplicación.
SEMANA 2
Tema 7. Imágenes digitales.
Tema 8. Espacios de color.
Tema 9. Operaciones matemáticas y lógicas.
SEMANA 3
Tema 10. Convolución de imágenes digitales.
Tema 11. Correlación.
Tema 12. Manipulación geométrica de la imagen.
SEMANA 4
Tema 13. Reducción de ruido.
Tema 14. Modificación del contraste.
Tema 15. Realce de bordes.
Tema 16. Detección de bordes.
SEMANA 5
Tema 17. Movimiento.
Tema 18. Segmentación.
SEMANA 6
Tema 19. Transformaciones morfológicas y descriptores.
Tema 20. Reconocimiento de patrones.

Introducción a la visión por computador: desarrollo de aplicaciones con OpenCV
الذهاب الي الدورة

Introducción a la visión por computador: desarrollo de aplicaciones con OpenCV

بواسطة: edX

  • edX
  • مجانية
  • Spanish
  • متاح شهادة
  • أيام محددة
  • intermediate
  • Spanish
8.1.2PHP Version797msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (513ms)
    • Application (283ms)
    • 1 x Booting (64.29%)
      512.56ms
      1 x Application (35.46%)
      282.75ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed12.58ms
      • select * from `courses` where `slug_ar` = 'introducción-a-la-visión-por-computador:-desarrollo-de-aplicaciones-con-opencv' limit 1
        10.29ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introducción-a-la-visión-por-computador:-desarrollo-de-aplicaciones-con-opencv
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-29 12:36:11' where `id` = 1814
        1.18ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-29 12:36:11
        • 1. 1814
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (115)
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (72) and `institutions`.`deleted_at` is null
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1805 limit 1
        250μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1805
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        NLKPN9tMxF3H5dbhA5WJnVlg8ALKu42ltiA7JoGc
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introd...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introducci%C3%B3n-a-la-visi%C3%B3n-por-computador:-desarrollo-de-aplicaciones-con-opencv
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.251" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.251" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "966ca9113b19ebb9-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.251" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.251" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "966ca9113b19ebb9-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "45458" "REMOTE_ADDR" => "172.69.130.237" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introducci%C3%B3n-a-la-visi%C3%B3n-por-computador:-desarrollo-de-aplicaciones-con-opencv" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1753792571.3423 "REQUEST_TIME" => 1753792571 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 29 Jul 2025 12:36:12 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ilk5YnZpSFRla3FybUtEaE4wR3JIc3c9PSIsInZhbHVlIjoiQk4wdzZ1QnQzNzlvQURhN0FQc1dkamh5R0dVMEJUQ2VYeVZGb1NtWGZyK2NYV0Q3eEJQWWQ5aW1URVBrQkI3MzBmYW9vcGxtb3lNZFpRZ0xjOHRCdS9KL1ljN2VkUjRSaW1QSGpCSk40MGhJVTJvc2h4MlBHQ2JtaUM5WXhuejIiLCJtYWMiOiI5YmYxZmJmMzZmNGI3YWQzZjNjMGRjNDdlNDlmOWY1OTg1M2ZjNWQ1NGM4NmIyZmUxY2UxY2ZkODhlNjg3MmUzIiwidGFnIjoiIn0%3D; expires=Tue, 29 Jul 2025 14:36:12 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ilk5YnZpSFRla3FybUtEaE4wR3JIc3c9PSIsInZhbHVlIjoiQk4wdzZ1QnQzNzlvQURhN0FQc1dkamh5R0dVMEJUQ2VYeVZGb1NtWGZyK2NYV0Q3eEJQWWQ5aW1URVBrQkI3MzBmYW9vc" 1 => "laravel_session=eyJpdiI6ImtzM1F0ZHE4Y3dsZlk5bGk4MFA2VHc9PSIsInZhbHVlIjoiV1ovcENmemd6QXY0U3lMd20xR0J3WnZyMFVCMnFNUStlbjhjem5CNzBVT0dmUWtwMkpZcDR3Y1RkWUlHTHBia3FwMXpNSElhbnJSNnpWU0xPcmNkVTBpMlZ0ekpKSUR0RUM0SjI0Z0Fyd3NOc1pxdFVMNHFDZUpmOE1ZaWFzdW8iLCJtYWMiOiI2YjFiNDYyZWExYzFjMjQyZTE2MGRmYzI0Mjc1NjRhNWZmYTVkNzJmNGY5MjUwMDU2YTI2M2U1NzRmNDhhYjEyIiwidGFnIjoiIn0%3D; expires=Tue, 29 Jul 2025 14:36:12 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImtzM1F0ZHE4Y3dsZlk5bGk4MFA2VHc9PSIsInZhbHVlIjoiV1ovcENmemd6QXY0U3lMd20xR0J3WnZyMFVCMnFNUStlbjhjem5CNzBVT0dmUWtwMkpZcDR3Y1RkWUlHTHBia3Fw" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ilk5YnZpSFRla3FybUtEaE4wR3JIc3c9PSIsInZhbHVlIjoiQk4wdzZ1QnQzNzlvQURhN0FQc1dkamh5R0dVMEJUQ2VYeVZGb1NtWGZyK2NYV0Q3eEJQWWQ5aW1URVBrQkI3MzBmYW9vcGxtb3lNZFpRZ0xjOHRCdS9KL1ljN2VkUjRSaW1QSGpCSk40MGhJVTJvc2h4MlBHQ2JtaUM5WXhuejIiLCJtYWMiOiI5YmYxZmJmMzZmNGI3YWQzZjNjMGRjNDdlNDlmOWY1OTg1M2ZjNWQ1NGM4NmIyZmUxY2UxY2ZkODhlNjg3MmUzIiwidGFnIjoiIn0%3D; expires=Tue, 29-Jul-2025 14:36:12 GMT; path=/XSRF-TOKEN=eyJpdiI6Ilk5YnZpSFRla3FybUtEaE4wR3JIc3c9PSIsInZhbHVlIjoiQk4wdzZ1QnQzNzlvQURhN0FQc1dkamh5R0dVMEJUQ2VYeVZGb1NtWGZyK2NYV0Q3eEJQWWQ5aW1URVBrQkI3MzBmYW9vc" 1 => "laravel_session=eyJpdiI6ImtzM1F0ZHE4Y3dsZlk5bGk4MFA2VHc9PSIsInZhbHVlIjoiV1ovcENmemd6QXY0U3lMd20xR0J3WnZyMFVCMnFNUStlbjhjem5CNzBVT0dmUWtwMkpZcDR3Y1RkWUlHTHBia3FwMXpNSElhbnJSNnpWU0xPcmNkVTBpMlZ0ekpKSUR0RUM0SjI0Z0Fyd3NOc1pxdFVMNHFDZUpmOE1ZaWFzdW8iLCJtYWMiOiI2YjFiNDYyZWExYzFjMjQyZTE2MGRmYzI0Mjc1NjRhNWZmYTVkNzJmNGY5MjUwMDU2YTI2M2U1NzRmNDhhYjEyIiwidGFnIjoiIn0%3D; expires=Tue, 29-Jul-2025 14:36:12 GMT; path=/; httponlylaravel_session=eyJpdiI6ImtzM1F0ZHE4Y3dsZlk5bGk4MFA2VHc9PSIsInZhbHVlIjoiV1ovcENmemd6QXY0U3lMd20xR0J3WnZyMFVCMnFNUStlbjhjem5CNzBVT0dmUWtwMkpZcDR3Y1RkWUlHTHBia3Fw" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "NLKPN9tMxF3H5dbhA5WJnVlg8ALKu42ltiA7JoGc" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introducci%C3%B3n-a-la-visi%C3%B3n-por-computador:-desarrollo-de-aplicaciones-con-opencv" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]