|
|
|
| Надо написать фильтр Гаусса. После попыток его написать изображение почему-то затемняется, хотя вроде по алгоритму все верно. Вот наработка. Язык С++.
double s = 0;
double r = 1.398;
double r2 = 2 * r * r;
int n = 3;
double ss;
double color;
double **w = new double *[n];
for (int i = 0; i < n; i++) {
w[i] = new double[n];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ss = (i * i + j * j) / r2;
w[i][j] = 1 / (sqrt(M_PI * r2)) * exp(ss * (-1.0));
s += w[i][j];
}
for (int j = 0; j < n; j++) {
w[i][j] = w[i][j] / s;
}
}
for (int yi = n; yi < height - n; yi++) {
for (int xj = n; xj < width - n; xj++) {
for (int i = 0; i < n; i++) {
color = 0;
for (int j = 0; j < n; j++) {
color += w[i][j] * LightMap[(int) (i + yi)][(int) (j + xj)];
}
}
LightMap[(int) (yi)][(int) (xj)] = color;
}
} |
LightMap - двумерный массив с насыщенностью цветов изображения (градация серого) в чем ошибка? | |
|
|