Программирование - это просто
Advertisement
Главная arrow Математика и информатика arrow Теория и практика компьютерной графики. arrow Теория и практика компьютерной графики. Урок 7. Шумоподавление
09.05.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Теория и практика компьютерной графики. Урок 7. Шумоподавление Печать E-mail
Автор megabax   
11.05.2023 г.
New Page 1

Теория и практика компьютерной графики. Урок 7. Шумоподавление

Чтобы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находится здесь.


В данном уроке мы напишем на C# программу, которая удаляет из картинки шум типа "соль и перец". Шум, называемый "соль и перец" - это черные или белые точки на изображении, иногда цветные, вот например:

Теория и практика компьютерной графики. Урок 7. Шумоподавление

Для удаления данного вида шума применятся так называемая медианная фильтрация, суть которой состоит в том, что мы каждую точку заменяем неким средним из ее окружения, вот исходный код данного алгоритма:

В данной программе используются классы из исходников прошлого урока, и сама программа для тестирования также встраивается в эти исходники:

        public MainForm()

        {

            InitializeComponent();

            frame = new Frame("D:\\3\\DSCN0116nous.png");

            pictureBox1.Image = frame.picture;

            Preprocessing ps=new Preprocessing();

            Frame frame1 = ps.noise_reduction(frame);

            frame1.create_picture();

            pictureBox2.Image = frame1.picture;

        }

 

...

...

...

 

Итак, смотрим, на результат работы алгоритма шумоподавления:

Теория и практика компьютерной графики. Урок 7. Шумоподавление

 

Как видим, программа хорошо убирает шум с неоднородных участков, но вот те черные и белые точки, что находятся на небе, он убрать не смог. Это, еще, рпавда, полбеды. Изображение стало очень нерезким. Как исправить? Можно попробовать применить фильтр четкости. Для этого напишем процедуру ...

 

...

...

...

 

Вот результат последовательного применения обоих фильтров:

Теория и практика компьютерной графики. Урок 7. Шумоподавление

 

Как видим, изображение стало более четким, ушла размытость, практически весь шум исчез. Но появились некоторые искажения: в частности, ореол вокруг некоторых объектов и рваные края.

Вот другой вариант медианного фильтра....

 

...

...

...

 

Результат куда лучше, причем, даже без применения фильтра повышения четкости (он не размывает!):

 

Теория и практика компьютерной графики. Урок 7. Шумоподавление

 

Правда, в некоторых местах у нас все равно получаются рваные края. Вариантом решения данных проблем может быть применение различных алгоритмов шумоподавления для разных участков картины. В будущих уроках мы еще вернемся к этим методам.

 


 

Последнее обновление ( 10.08.2023 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги