Антиалиасинг рутина для сокращения

Я пытаюсь реализовать пользовательскую процедуру сглаживания путем суммирования ближайших пикселей для уменьшения изображения.

Я пытался суммировать и обозначать ширину до 3 пикселей, но результат не очень хороший, он настолькосглаженный (я имею в виду псевдоним), как и раньше.

вот код, который я использовал:

h is height
w is width
buf is a buffer containing the values.
out is the output buffer

for (int x = 0; x < w; x++)
    for (int y = 0; y < h; y++)
    {
        int n = 3;
        int x1 = x - n;
        int x2 = x + n;

        if (x1 < 0) x1 = 0;
        if (x2 > w -1) x2 = w - 1;

        int y1 = y - n; 
        int y2 = y + n;

        if (y1 < 0) y1 = 0;
        if (y2 > h - 1) y2 = h - 1;

        double sum = 0;
        for (int i = x1; i <= x2; i++)
            for (int j = y1; j <= y2; j++)
                 sum += buf[i][j];

        sum = sum / double((x2 - x1 +1) * (y2 - y1 +1));
        out[x][y] = sum;
    }

Какую быструю процедуру я мог бы использовать для простого базового сглаживания?

0 ответов

Другие вопросы по тегам