Вернуться наверх
aco.ifmo.ru photonic
вернуться в оглавление предыдущая глава предыдущий параграф следующий параграф следующая глава


Генерация шума

Для исследования методов фильтрации или других целей можно воспользоваться функцией iplNoiseImage, которая позволяет сгенерировать шум и добавить его к изображению (зашумить). Эта функция имеет следующий прототип:

IPLStatus iplNoiseImage(IplImage* image, const IplNoiseParam* noiseParam);

где image – изображение, а noiseParam – параметры шума, которые создаются с помощью функции iplNoiseUniformInit (для шума распределенного равномерно) или iplNoiseGaussianInit (для шума с Гауссовым распределением):

void iplNoiseUniformInit(IplINoiseParam* noiseParam, unsigned int seed, int low, int high);
void iplNoiseGaussianInit(IplINoiseParam* noiseParam, unsigned int seed, int mean, int stDev);

где noiseParam – указатель на структуру типа IplINoiseParam, в которую функция запишет параметры для генерации шума, seed – число для инициализации генератора случайных чисел. Для равномерного шума задаются аргументы low и high, которые определяют верхнюю и нижнюю границы диапазона равномерно распределенных значений. Для гауссового шума задаётся аргумент mean, который определяет среднее значение распределения Гаусса, а stDev – среднеквадратическое отклонение. Таким образом, процедура для зашумления изображения может быть реализована следующим образом:

void NoiseImage
{
// Задание параметров шума
    IplNoiseParam noiseParam;
    iplNoiseUniformInit(&noiseParam, 0, 100, 200);

// Зашумление изображения
    iplNoiseImage(m_img, &noiseParam);
}