Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Компьютерное зрение

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Магистратура
  5. КЗ
  6. Добор баллов
  7. Задание 2. Реализация медианного фильтра для подав...

Задание 2. Реализация медианного фильтра для подавления шума.

Требуемые условия завершения
Открыто с: вторник, 18 февраля 2025, 00:00
Срок сдачи: суббота, 22 февраля 2025, 00:00

Шаги выполнения:

1. Загрузка и подготовка изображения

   - Загрузите зашумленное изображение (например, с добавленным "соль-перец" шумом) через `cv2.imread` и преобразуйте его в оттенки серого (можно использовать готовое преобразование или свое из предыдущего задания).  


2. Реализация медианного фильтра

   - Создайте функцию для применения медианного фильтра с окном 3x3.  

   - Для каждого пикселя изображения:  

     - Соберите значения яркости в окрестности 3x3.  

     - Отсортируйте значения и выберите медиану.  

     - Замените центральный пиксель медианным значением.  

   - Обработайте границы изображения (например, игнорируйте пиксели за пределами или продублируйте края).  


3. Визуализация результатов

   - Выведите исходное зашумленное изображение и результат фильтрации.  

   - Убедитесь, что шум "соль-перец" значительно уменьшился.  

Для наложения шума на изображение можно использовать следующую функцию:


import numpy as np
import os
import cv2

def noisy(image, noise_typ="s&p"):
   if noise_typ == "gauss":
      row,col,ch= image.shape
      mean = 0
      var = 0.1
      sigma = var**0.5
      gauss = np.random.normal(mean,sigma,(row,col,ch))
      gauss = gauss.reshape(row,col,ch)
      noisy = image + gauss
      return noisy
   elif noise_typ == "s&p":
      row,col,ch = image.shape
      s_vs_p = 0.5
      amount = 0.004
      out = np.copy(image)
      # Salt mode
      num_salt = np.ceil(amount * image.size * s_vs_p)
      coords = [np.random.randint(0, i - 1, int(num_salt))
              for i in image.shape]
      out[coords] = 1

      # Pepper mode
      num_pepper = np.ceil(amount* image.size * (1. - s_vs_p))
      coords = [np.random.randint(0, i - 1, int(num_pepper))
              for i in image.shape]
      out[coords] = 0
      return out
  elif noise_typ == "poisson":
      vals = len(np.unique(image))
      vals = 2 ** np.ceil(np.log2(vals))
      noisy = np.random.poisson(image * vals) / float(vals)
      return noisy
  elif noise_typ =="speckle":
      row,col,ch = image.shape
      gauss = np.random.randn(row,col,ch)
      gauss = gauss.reshape(row,col,ch)        
      noisy = image + image * gauss
      return noisy

 
Также можно попробовать применить реализованный метод медианной фильтрации и для других типов шума.

- Для медианного фильтра запрещено применять `cv2.medianBlur`.

◄ Задание 1. Реализация оператора градиента.
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

          • ТОИ маг

          • Modern computer technology

          • Математика и её приложения в науке и инженерии

          • MUDP

          • ОНС-Н

          • RL

          • ИИ_НС

          • КрПр

          • КЗ

            • Общее

            • 6 сентября - 12 сентября

            • 13 сентября - 19 сентября

            • 20 сентября - 26 сентября

            • 27 сентября - 3 октября

            • 4 октября - 10 октября

            • 11 октября - 17 октября

            • 18 октября - 24 октября

            • 25 октября - 31 октября

            • 1 ноября - 7 ноября

            • 8 ноября - 14 ноября

            • 15 ноября - 21 ноября

            • 29 ноября - 5 декабря

            • 6 декабря - 12 декабря

            • Добор баллов

              • ЗаданиеЗадание 1. Реализация оператора градиента.

              • ЗаданиеЗадание 2. Реализация медианного фильтра для подав...

          • АДС

          • РПП

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
КЗ
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика