Генерация шума
Для исследования методов фильтрации или других целей можно воспользоваться функцией 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);
}
|