Конструкция генератора шума
digital image processing (Numpy)
Конструкция генератора шума:
Типы шума характеризуются их распределением:
1.1 Гауссов Шум
1.2 Реликтовый шум
1.3 Гамма-шум
1.4 Экспоненциальный шум
1.5 Равномерный шум
1,6 Кг Соли И Перца
Для каждого типа шума нужно написать функцию, которая получает переменные a, b и размер изображения. Функция должна возвращать изображение с шумом. Положение компонентов шума на изображении является случайным, а распределение интенсивности различных пикселей определяется функцией плотности типа шума и переменными a, b.
Нужно проверить решение по гистограмме результата 50*50
Ответы (1 шт):
Генерация шумов производиться элементарно.
1.Если нужный вам закон распределения присутствует в библиотеке scipy.stats, используется соответствующий объект из этой библиотеки. Параметры генератора отличаются для каждого из распределений и описаны в документации. Все описанные вами "шумы" в этой б-ке есть (ну, кроме 1.6).
2.Если желаете пользоваться библиотекой numpy.random, а в ней (вдруг) не окажется нужного вам распределения, то генерация состоит из двух подшагов - на первом генерируете равномерное распределение, а на втором с помощью известной вам функции плотности распределения генерируете из полученного равномерного набора нужный вам закон. Если это вам непонятно - ищем в интернете (информации куча) или на крайний случай (если вдруг что-то там останется непонятным)- постим конкретно этот вопрос.
3.Сгенерированные наборы данных добавляются к матричному представлению вашего изображения. Поскольку от вас просят зашумить интенсивность - работаете с форматом данных, в которых есть такое представление. Если положение выбирается случайно - то используете функцию random.choice или numpy.random.choice.
4.Гистограмма объекта строиться - например - методом matplotlib.pyplot.hist().
Вот такая вот "конструкция" генератора шума, как вы и спрашивали.