Recognizing Shapes in Images with OpenCV

Brought by: Coursera

Overview

In this 1.5 hour long project-based course, you will apply computer vision techniques to process images, extract useful features and detect shapes using Hough transforms.

By the end of this project, you will have analyzed real-world images using industry standard tools, including Python and OpenCV.

Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Syllabus

  • Project Overview
    • In this 1.5 hour long project-based course, you will apply computer vision techniques to process images, extract useful features and detect shapes using Hough transforms. By the end of this project, you will have analyzed real-world images using industry standard tools, including Python and OpenCV.

Taught by

Daniel Romaniuk

Recognizing Shapes in Images with OpenCV
Go to course

Recognizing Shapes in Images with OpenCV

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • English
8.1.2PHP Version845msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (543ms)
    • Application (300ms)
    • 1 x Booting (64.26%)
      543.19ms
      1 x Application (35.49%)
      300.00ms
      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 en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed12.25ms
      • select * from `courses` where `slug_en` = 'recognizing-shapes-in-images-with-opencv' limit 1
        10.21ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. recognizing-shapes-in-images-with-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-27 00:15:25' where `id` = 2084
        850μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-27 00:15:25
        • 1. 2084
        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)
        250μ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 (106) 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 (2) and `providers`.`deleted_at` is null
        230μ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` = 2075 limit 1
        270μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2075
        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
        3AuNlnPctaKEwGQurLa5VtxW9sftf62Rcx3rGW4k
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/recognizing-shapes-in-images-with-opencv"...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/recognizing-shapes-in-images-with-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.230" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.230" ] "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 => "9657f134abb0ec72-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.230" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.230" "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" => "9657f134abb0ec72-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" => "22608" "REMOTE_ADDR" => "172.70.80.220" "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" => "/en/courses/recognizing-shapes-in-images-with-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" => 1753575325.1617 "REQUEST_TIME" => 1753575325 ]
        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 => "Sun, 27 Jul 2025 00:15:25 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImcwdkJDdGZtM1ZoVnpkRHo3UTlzbnc9PSIsInZhbHVlIjoibUdGQU1BeWdWMmMxMUw2TVhuUnd0bGdJZjQ4UWl3U00yTy9Wbko2UFlNTGhyVWlFOVdkbE9maS8rS1IvKyttNjFxWE1XdjZ4bHZSdWNnTFVvUCtTbU9iT3htS3hxM3JuTThBT2JscXJ4dC9pcjUwSWxDWFdnZDMrSHgzZmxUdzMiLCJtYWMiOiJlY2YwZTYwY2IwZDBjZDEzYjNmNGIzYmFiZjU4MDc4ODNkYmIyNDI2MDAzNzBhODI1MjE3ZjJlYzg4OTVmYWI4IiwidGFnIjoiIn0%3D; expires=Sun, 27 Jul 2025 02:15:25 GMT; Max-Age=7199; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImcwdkJDdGZtM1ZoVnpkRHo3UTlzbnc9PSIsInZhbHVlIjoibUdGQU1BeWdWMmMxMUw2TVhuUnd0bGdJZjQ4UWl3U00yTy9Wbko2UFlNTGhyVWlFOVdkbE9maS8rS1IvKyttNjFxWE1Xd" 1 => "laravel_session=eyJpdiI6Ilk1VVhvd1BHeHRGRUpYOTlTUDVlOHc9PSIsInZhbHVlIjoiYUNmZ3BiZUppem9mYUVZdUw1eStjL2ZpNU0vTlJyVjhLRGlBdWkrWHNkejdaakRrMFIwUVRNWEZvSVNyOVZ4UzhUWDk1OWRnUWVPbDVEMHNBS00rRitQamEzUkhINitrMy8wKzlITGc0Y3JCUGlEZndNeElpbFZvaWVRbGVRVVYiLCJtYWMiOiJjMTZiYTMyZGQyYzA3NmUzNjc2NjU1MDM5MzYwOGU2MjRiNmJkODA2ZjBjMGFiYzM3YzI0MTRiZGI0Mzg3YjgyIiwidGFnIjoiIn0%3D; expires=Sun, 27 Jul 2025 02:15:25 GMT; Max-Age=7199; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ilk1VVhvd1BHeHRGRUpYOTlTUDVlOHc9PSIsInZhbHVlIjoiYUNmZ3BiZUppem9mYUVZdUw1eStjL2ZpNU0vTlJyVjhLRGlBdWkrWHNkejdaakRrMFIwUVRNWEZvSVNyOVZ4UzhU" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImcwdkJDdGZtM1ZoVnpkRHo3UTlzbnc9PSIsInZhbHVlIjoibUdGQU1BeWdWMmMxMUw2TVhuUnd0bGdJZjQ4UWl3U00yTy9Wbko2UFlNTGhyVWlFOVdkbE9maS8rS1IvKyttNjFxWE1XdjZ4bHZSdWNnTFVvUCtTbU9iT3htS3hxM3JuTThBT2JscXJ4dC9pcjUwSWxDWFdnZDMrSHgzZmxUdzMiLCJtYWMiOiJlY2YwZTYwY2IwZDBjZDEzYjNmNGIzYmFiZjU4MDc4ODNkYmIyNDI2MDAzNzBhODI1MjE3ZjJlYzg4OTVmYWI4IiwidGFnIjoiIn0%3D; expires=Sun, 27-Jul-2025 02:15:25 GMT; path=/XSRF-TOKEN=eyJpdiI6ImcwdkJDdGZtM1ZoVnpkRHo3UTlzbnc9PSIsInZhbHVlIjoibUdGQU1BeWdWMmMxMUw2TVhuUnd0bGdJZjQ4UWl3U00yTy9Wbko2UFlNTGhyVWlFOVdkbE9maS8rS1IvKyttNjFxWE1Xd" 1 => "laravel_session=eyJpdiI6Ilk1VVhvd1BHeHRGRUpYOTlTUDVlOHc9PSIsInZhbHVlIjoiYUNmZ3BiZUppem9mYUVZdUw1eStjL2ZpNU0vTlJyVjhLRGlBdWkrWHNkejdaakRrMFIwUVRNWEZvSVNyOVZ4UzhUWDk1OWRnUWVPbDVEMHNBS00rRitQamEzUkhINitrMy8wKzlITGc0Y3JCUGlEZndNeElpbFZvaWVRbGVRVVYiLCJtYWMiOiJjMTZiYTMyZGQyYzA3NmUzNjc2NjU1MDM5MzYwOGU2MjRiNmJkODA2ZjBjMGFiYzM3YzI0MTRiZGI0Mzg3YjgyIiwidGFnIjoiIn0%3D; expires=Sun, 27-Jul-2025 02:15:25 GMT; path=/; httponlylaravel_session=eyJpdiI6Ilk1VVhvd1BHeHRGRUpYOTlTUDVlOHc9PSIsInZhbHVlIjoiYUNmZ3BiZUppem9mYUVZdUw1eStjL2ZpNU0vTlJyVjhLRGlBdWkrWHNkejdaakRrMFIwUVRNWEZvSVNyOVZ4UzhU" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "3AuNlnPctaKEwGQurLa5VtxW9sftf62Rcx3rGW4k" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/recognizing-shapes-in-images-with-opencv" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]