Обработка изображений

بواسطة: Stepik

Overview

Курс начального уровня учит обработке изображений с помощью языка программирования Python. В курсе рассматриваются: устройство цифровых изображений, коррекция яркости и цвета изображения, фильтрация изображений, частотный анализ и устройство формата JPEG. Видео сопровождаются тестами и практическими заданиями на программирования, которые проверяются автоматически.

 

Syllabus

Введение


1.1 О курсе, технические требования

Устройство изображения. Работа с изображением в Python


2.1 Цифровое изображение. Чтение, запись, работа с пикселями


2.2 Арифметические операции. Каналы. Вычисление яркости изображения


2.3 Сопоставление фотографий Прокудина-Горского


Коррекция яркости и цвета


3.1 Линейная коррекция контраста


3.2 Коррекция контраста цветного изображения


3.3 Баланс белого. Модель «серого мира»


3.4 Выравнивание гистограммы


Фильтрация изображений



4.1 Операция свертки. Линейные фильтры


4.2 Медианный фильтр


Частотный анализ изображений


5.1 JPEG. Преобразование Фурье. Склейка изображений


Заключение



6.1 Заключительное видео

Taught by

Vlad Shahuro

Обработка изображений
الذهاب الي الدورة

Обработка изображений

بواسطة: Stepik

  • Stepik
  • مجانية
  • Russian
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • N/A
8.1.2PHP Version328msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (209ms)
    • Application (119ms)
    • 1 x Booting (63.56%)
      208.67ms
      1 x Application (36.19%)
      118.80ms
      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 executed6.71ms
      • select * from `courses` where `slug_ar` = 'обработка-изображений' limit 1
        5.17ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. обработка-изображений
        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-06-07 22:39:42' where `id` = 1784
        530μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-07 22:39:42
        • 1. 1784
        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 (1)
        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 `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        150μ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 (35) and `institutions`.`deleted_at` is null
        170μ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 (33) and `providers`.`deleted_at` is null
        160μ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` = 1775 limit 1
        300μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1775
        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
        8Lq3g51FxxQos6rf9Jlul1KqedO6HWhucPOr1gfB
        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/%D0%BE...
        _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/%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
        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.241" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.241" ] "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 => "94c3a5a0384eeabf-ORD" ] "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.241" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.241" "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" => "94c3a5a0384eeabf-ORD" "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" => "26818" "REMOTE_ADDR" => "172.70.126.34" "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/%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%" "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" => 1749335982.3867 "REQUEST_TIME" => 1749335982 ]
        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 => "Sat, 07 Jun 2025 22:39:42 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjJscDRYTTlnVVo3bHZzMjZTQ3VOUUE9PSIsInZhbHVlIjoia08xblBjVTB1VGNoQUFsb1lDL3JXd0crUmxrNkI0WmZpdlpyOVkvVy91N2o2VXhVRXJxeUFSU3U1RFlLalhoaUgzWHNEU1RoQ05ZeWJnNndzRTVFRkgxb2ZUbVNIZ1pML3JpVGxnam84NzFyRitoS20wU1VGbmRDNkZxeGxobDAiLCJtYWMiOiI2NzhkNDk0NjAwY2YzNTIxYTcyMTFlMDVhYTQzZGQ1Y2U1ZWZiOGYzNDliOTBlZGY1MWViMWVmM2JjMGYwNTQxIiwidGFnIjoiIn0%3D; expires=Sun, 08 Jun 2025 00:39:42 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjJscDRYTTlnVVo3bHZzMjZTQ3VOUUE9PSIsInZhbHVlIjoia08xblBjVTB1VGNoQUFsb1lDL3JXd0crUmxrNkI0WmZpdlpyOVkvVy91N2o2VXhVRXJxeUFSU3U1RFlLalhoaUgzWHNEU" 1 => "laravel_session=eyJpdiI6InJmZXdMdnJJb0JhdlgrZnJtdmo3MHc9PSIsInZhbHVlIjoiR3JVcDI0TW5qbDZqUEhiZjNSUGQ2R21ZeG16REdycUlveitFSnpJR0lyalBVQWRPMGVqT2lUM0d1Q2l3SjgwNjFPYnpWZWtLNTR2REE2d21XdHpMWkR2ZEdEWVFVUmw2OEY4aFBDUWwzSDJibFE1TFdSbEJnSGthRTVkZzNJUEQiLCJtYWMiOiIzODQyMDA4ZTE4MjNlNjI2MWQxOGQzMmRmMjVlZGQ5MDJkNzUxMWIzM2Y3ODA1N2VlMzA3ZTBhOTZjNDdlZTdkIiwidGFnIjoiIn0%3D; expires=Sun, 08 Jun 2025 00:39:42 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InJmZXdMdnJJb0JhdlgrZnJtdmo3MHc9PSIsInZhbHVlIjoiR3JVcDI0TW5qbDZqUEhiZjNSUGQ2R21ZeG16REdycUlveitFSnpJR0lyalBVQWRPMGVqT2lUM0d1Q2l3SjgwNjFP" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjJscDRYTTlnVVo3bHZzMjZTQ3VOUUE9PSIsInZhbHVlIjoia08xblBjVTB1VGNoQUFsb1lDL3JXd0crUmxrNkI0WmZpdlpyOVkvVy91N2o2VXhVRXJxeUFSU3U1RFlLalhoaUgzWHNEU1RoQ05ZeWJnNndzRTVFRkgxb2ZUbVNIZ1pML3JpVGxnam84NzFyRitoS20wU1VGbmRDNkZxeGxobDAiLCJtYWMiOiI2NzhkNDk0NjAwY2YzNTIxYTcyMTFlMDVhYTQzZGQ1Y2U1ZWZiOGYzNDliOTBlZGY1MWViMWVmM2JjMGYwNTQxIiwidGFnIjoiIn0%3D; expires=Sun, 08-Jun-2025 00:39:42 GMT; path=/XSRF-TOKEN=eyJpdiI6IjJscDRYTTlnVVo3bHZzMjZTQ3VOUUE9PSIsInZhbHVlIjoia08xblBjVTB1VGNoQUFsb1lDL3JXd0crUmxrNkI0WmZpdlpyOVkvVy91N2o2VXhVRXJxeUFSU3U1RFlLalhoaUgzWHNEU" 1 => "laravel_session=eyJpdiI6InJmZXdMdnJJb0JhdlgrZnJtdmo3MHc9PSIsInZhbHVlIjoiR3JVcDI0TW5qbDZqUEhiZjNSUGQ2R21ZeG16REdycUlveitFSnpJR0lyalBVQWRPMGVqT2lUM0d1Q2l3SjgwNjFPYnpWZWtLNTR2REE2d21XdHpMWkR2ZEdEWVFVUmw2OEY4aFBDUWwzSDJibFE1TFdSbEJnSGthRTVkZzNJUEQiLCJtYWMiOiIzODQyMDA4ZTE4MjNlNjI2MWQxOGQzMmRmMjVlZGQ5MDJkNzUxMWIzM2Y3ODA1N2VlMzA3ZTBhOTZjNDdlZTdkIiwidGFnIjoiIn0%3D; expires=Sun, 08-Jun-2025 00:39:42 GMT; path=/; httponlylaravel_session=eyJpdiI6InJmZXdMdnJJb0JhdlgrZnJtdmo3MHc9PSIsInZhbHVlIjoiR3JVcDI0TW5qbDZqUEhiZjNSUGQ2R21ZeG16REdycUlveitFSnpJR0lyalBVQWRPMGVqT2lUM0d1Q2l3SjgwNjFP" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "8Lq3g51FxxQos6rf9Jlul1KqedO6HWhucPOr1gfB" "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/%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]