я пытаюсь реализовать пользовательскую процедуру сглаживания путем суммирования ближайших пикселей для уменьшения изображения.
Я пытался суммировать и иметь в виду до 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;
}
Какую быструю процедуру я мог бы использовать для простого базового сглаживания?
Задача ещё не решена.
Других решений пока нет …