Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: avkrus   (22.05.2012 в 19:17)
Надо написать фильтр Гаусса. После попыток его написать изображение почему-то затемняется, хотя вроде по алгоритму все верно. Вот наработка. Язык С++.

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 - двумерный массив с насыщенностью цветов изображения (градация серого) в чем ошибка?


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: