Добавление белого гауссовского шума с использованием Qt

Я посмотрел в Интернете так же, как и здесь (stackoverflow), и не смог найти хорошего ответа о том, как реализовать добавление белого гауссовского шума в мой объект qimage. или если есть существующая функция, которую я могу использовать?

какие-либо предложения?
Спасибо заранее

-1

Решение

Следующий код очень помог мне:

#include <stdlib.h>
#include <math.h>
#include <time.h>float gauss_rand(float mean,float stdev)

{
int i;
const int ORDER=2*12; /* 12,24,36 etc. due to del^2/12 */
const double dev_norm=1.4142136; /* sqrt(ORDER/12) */
double rndno;

rndno=-(ORDER>>1);
for(i=0;i<ORDER;i++) {

rndno+=(double)(rand()/(RAND_MAX+1.0));
}

rndno*=stdev/dev_norm;
rndno+=mean;
return((float)rndno);
}

void add_gaussian_noise(float **orig,int Ni,int Nj,float **noisy,float mean,float stdev)

{
int i,j;
static int kilroy=0;
unsigned int seed;

if(!kilroy) {
kilroy=1;

seed=(unsigned)time( NULL );

// uncomment for the same noise process
//  seed=0;
srand(seed);
}

for(i=0;i<Ni;i++)
for(j=0;j<Nj;j++)
noisy[i][j]=orig[i][j]+gauss_rand(mean,stdev);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]