Я пытаюсь взять этот код ...
char mysmooth1_ descr[] = "my smooth1: My smooth1 replaced avg() func. and assign sum to pixel";
void mysmooth1 (int dim, pixel *src, pixel *dst)
{
int i, j;
int ii, jj;
pixel_ sum sum;
pixel current_ pixel;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
{
initialize_pixel_sum(&sum);
for(ii = max(i-1, 0); ii <= min(i+1, dim-1); ii++)
for(jj = max(j-1, 0); jj <= min(j+1, dim-1); jj++)
accumulate_sum(&sum, src[RIDX(ii, jj, dim)]);
{
current_ pixel.red = (unsigned short) (sum.red/sum.num);
current_ pixel.green = (unsigned short) (sum.green/sum.num);
current_ pixel.blue = (unsigned short) (sum.blue/sum.num);
dst[RIDX(i, j, dim)] = current_pixel;
}
}
}
и замените вызов функции на накопление_ суммы этим кодом ...
static void accumulate_ sum (pixel_sum *sum, pixel p)
{
sum->red += (int) p.red;
sum->green += (int) p.green;
sum->blue += (int) p.blue;
sum->num++;
return;
}
Теперь законченный код, который я придумал, который включает в себя попытку заменить вызов функции на сумму действительным кодом суммы, выглядит следующим образом ...
char mysmooth2_descr[] = "my smooth2: My smooth1 replaced avg() func. and assign sum to pixel and accumulate sum func.";
void mysmooth2(int dim, pixel *src, pixel *dst)
{
int i, j, num;
int ii, jj;
pixel_sum sum;
pixel current_pixel;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
{
initialize_pixel_sum(&sum);
for(ii = max(i-1, 0); ii <= min(i+1, dim-1); ii++)
for(jj = max(j-1, 0); jj <= min(j+1, dim-1); jj++)
sum.red += (int) p.red;
sum.green += (int) p.green;
sum.blue += (int) p.blue;
sum.num++;
{
current_ pixel.red = (unsigned short) (sum.red/sum.num);
current_ pixel.green = (unsigned short) (sum.green/sum.num);
current_ pixel.blue = (unsigned short) (sum.blue/sum.num);
dst[RIDX(i, j, dim)] = current_pixel;
}
}
}
Теперь я думал, что сделал все правильно, но продолжаю получать ошибки, которые мешают мне скомпилировать код ... Если бы кто-то мог сказать мне, что я делаю неправильно, это было бы здорово. Я где-то пропустил скобки? Должен ли я добавить больше кода куда-нибудь ... любые советы или примеры, которые помогут мне сделать это в будущем, будут с благодарностью. Спасибо.
На самом деле, теперь я понимаю, что что-то напутал, пытаясь заменить вызов функциирограммируемой суммой на фактический код ... любые предложения ... может быть, это скобки, которые я облажался ...