Моя функция размытия CS50 работает неправильно - PullRequest
0 голосов
/ 20 апреля 2020

В настоящее время я работаю над программой фильтрации на CS50. Пока это было достаточно просто, но я борюсь с несколькими ошибками в моей программе размытия. Я чувствую, что проблема заключается в крайних случаях программы, но я не могу быть уверен. Если бы кто-то мог дать подсказку, я был бы очень признателен.

// Blur image
void blur(int height, int width, RGBTRIPLE image[height][width])
{
    RGBTRIPLE copy[height][width];

    for (int h = 0; h < height; h++)
    {
        for (int w = 0; w < width; w++)
        {
            copy[h][w] = image[h][w];
        }
    }

    for (int y = 0; y < height; y++)
    {
        for (int x = 0; x < width; x++)
        {
            int count = 0;
            float redaddup = 0;
            float greenaddup = 0;
            float blueaddup = 0;
            for (int r = -1; r < 2; r++)
            {
                for (int s = -1; s < 2; s++)
                {
                    if((y + r > height || y + r < 0) || (x + s > width || x + s < 0))
                    {

                    }
                    else
                    {
                        redaddup += copy[y+r][x+s].rgbtRed;
                        greenaddup += copy[y+r][x+s].rgbtGreen;
                        blueaddup += copy[y+r][x+s].rgbtBlue;
                        count++;
                    }
                }
            }
            image[y][x].rgbtRed = round(redaddup / count);
            image[y][x].rgbtGreen = round(greenaddup / count);
            image[y][x].rgbtBlue = round(blueaddup / count);

            image[y][x].rgbtRed = image[y][x].rgbtRed % 256;
            image[y][x].rgbtBlue = image[y][x].rgbtBlue % 256;
            image[y][x].rgbtGreen = image[y][x].rgbtGreen % 256;
        }
    }
    return;
}

Я получаю следующие ошибки:

:( blur correctly filters 3x3 image
expected "70 85 95\n80 9...", not "70 85 95\n80 9..."
:( blur correctly filters 4x4 image
expected "70 85 95\n80 9...", not "70 85 95\n80 9..."

Кроме того, я довольно новичок в программировании, так что если Любой, кому нравится критиковать мой код, не стесняйтесь. Я мог бы использовать обратную связь.

...