nonipal

Untitled

Oct 12th, 2021
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.22 KB | None | 0 0
  1. // Blur image
  2. void blur(int height, int width, RGBTRIPLE image[height][width])
  3. {
  4.     float red = 0;
  5.     float green = 0;
  6.     float blue = 0;
  7.    
  8.     for (int i = 0; i < height; i++)
  9.     {
  10.         for (int j = 0; j < width; j++)
  11.         {
  12.             // Blur main
  13.             if (i + 1 <= height &&  i - 1 > 0 && j + 1 <= width && j - 1 > 0)
  14.             {
  15.                 red = (image[i-1][j-1].rgbtRed + image[i-1][j].rgbtRed + image[i-1][j+1].rgbtRed + image[i][j-1].rgbtRed + image[i][j].rgbtRed + image[i][j+1].rgbtRed + image[i+1][j-1].rgbtRed + image[i+1][j].rgbtRed + image[i+1][j+1].rgbtRed) / 9;
  16.                 green = (image[i-1][j-1].rgbtGreen + image[i-1][j].rgbtGreen + image[i-1][j+1].rgbtGreen + image[i][j-1].rgbtGreen + image[i][j].rgbtGreen + image[i][j+1].rgbtGreen + image[i+1][j-1].rgbtGreen + image[i+1][j].rgbtGreen + image[i+1][j+1].rgbtGreen) / 9;
  17.                 blue = (image[i-1][j-1].rgbtBlue + image[i-1][j].rgbtBlue + image[i-1][j+1].rgbtBlue + image[i][j-1].rgbtBlue + image[i][j].rgbtBlue + image[i][j+1].rgbtBlue + image[i+1][j-1].rgbtBlue + image[i+1][j].rgbtBlue + image[i+1][j+1].rgbtBlue ) / 9;
  18.             }
  19.             // Blur Edges
  20.             else if (i - 1 < 0 || j - 1 < 0)
  21.             {
  22.                 red = (image[i][j].rgbtRed + image[i][j+1].rgbtRed + image[i+1][j].rgbtRed + image[i+1][j+1].rgbtRed) / 4;
  23.                 green = (image[i][j].rgbtGreen + image[i][j+1].rgbtGreen + image[i+1][j].rgbtGreen + image[i+1][j+1].rgbtGreen) / 4;
  24.                 blue = (image[i][j].rgbtBlue + image[i][j+1].rgbtBlue + image[i+1][j].rgbtBlue + image[i+1][j+1].rgbtBlue ) / 4;
  25.             }
  26.             else if (i - 1 < 0 || j + 1 > width)
  27.             {
  28.                 red = (image[i][j-1].rgbtRed + image[i][j].rgbtRed + image[i+1][j-1].rgbtRed + image[i+1][j].rgbtRed) / 4;
  29.                 green = (image[i][j-1].rgbtGreen + image[i][j].rgbtGreen + image[i+1][j-1].rgbtGreen + image[i+1][j].rgbtGreen) / 4;
  30.                 blue = (image[i][j-1].rgbtBlue + image[i][j].rgbtBlue + image[i+1][j-1].rgbtBlue + image[i+1][j].rgbtBlue) / 4;
  31.             }
  32.             else if (i + 1 > height || j - 1 < 0)
  33.             {
  34.                 red = (image[i-1][j].rgbtRed + image[i-1][j+1].rgbtRed + image[i][j].rgbtRed + image[i][j+1].rgbtRed) / 4;
  35.                 green = (image[i-1][j].rgbtGreen + image[i-1][j+1].rgbtGreen + image[i][j].rgbtGreen + image[i][j+1].rgbtGreen) / 4;
  36.                 blue = (image[i-1][j].rgbtBlue + image[i-1][j+1].rgbtBlue + image[i][j].rgbtBlue + image[i][j+1].rgbtBlue) / 4;
  37.             }
  38.             else if (i + 1 > height || j + 1 > width)
  39.             {
  40.                 red = (image[i-1][j-1].rgbtRed + image[i-1][j].rgbtRed + image[i][j-1].rgbtRed + image[i][j].rgbtRed) / 4;
  41.                 green = (image[i-1][j-1].rgbtGreen + image[i-1][j].rgbtGreen + image[i][j-1].rgbtGreen + image[i][j].rgbtGreen) / 4;
  42.                 blue = (image[i-1][j-1].rgbtBlue + image[i-1][j].rgbtBlue + image[i][j-1].rgbtBlue + image[i][j].rgbtBlue) / 4;
  43.             }
  44.             // Blur Corners
  45.             else if (i - 1 < 0 && j - 1 < 0)
  46.             {
  47.                 red = (image[i][j].rgbtRed + image[i][j+1].rgbtRed + image[i+1][j].rgbtRed + image[i+1][j+1].rgbtRed) / 4;
  48.                 green = (image[i][j].rgbtGreen + image[i][j+1].rgbtGreen + image[i+1][j].rgbtGreen + image[i+1][j+1].rgbtGreen) / 4;
  49.                 blue = (image[i][j].rgbtBlue + image[i][j+1].rgbtBlue + image[i+1][j].rgbtBlue + image[i+1][j+1].rgbtBlue ) / 4;
  50.             }
  51.             else if (i - 1 < 0 && j + 1 > width)
  52.             {
  53.                 red = (image[i][j-1].rgbtRed + image[i][j].rgbtRed + image[i+1][j-1].rgbtRed + image[i+1][j].rgbtRed) / 4;
  54.                 green = (image[i][j-1].rgbtGreen + image[i][j].rgbtGreen + image[i+1][j-1].rgbtGreen + image[i+1][j].rgbtGreen) / 4;
  55.                 blue = (image[i][j-1].rgbtBlue + image[i][j].rgbtBlue + image[i+1][j-1].rgbtBlue + image[i+1][j].rgbtBlue) / 4;
  56.             }
  57.             else if (i + 1 > height && j - 1 < 0)
  58.             {
  59.                 red = (image[i-1][j].rgbtRed + image[i-1][j+1].rgbtRed + image[i][j].rgbtRed + image[i][j+1].rgbtRed) / 4;
  60.                 green = (image[i-1][j].rgbtGreen + image[i-1][j+1].rgbtGreen + image[i][j].rgbtGreen + image[i][j+1].rgbtGreen) / 4;
  61.                 blue = (image[i-1][j].rgbtBlue + image[i-1][j+1].rgbtBlue + image[i][j].rgbtBlue + image[i][j+1].rgbtBlue) / 4;
  62.             }
  63.             else if (i + 1 > height && j + 1 > width)
  64.             {
  65.                 red = (image[i-1][j-1].rgbtRed + image[i-1][j].rgbtRed + image[i][j-1].rgbtRed + image[i][j].rgbtRed) / 4;
  66.                 green = (image[i-1][j-1].rgbtGreen + image[i-1][j].rgbtGreen + image[i][j-1].rgbtGreen + image[i][j].rgbtGreen) / 4;
  67.                 blue = (image[i-1][j-1].rgbtBlue + image[i-1][j].rgbtBlue + image[i][j-1].rgbtBlue + image[i][j].rgbtBlue) / 4;
  68.             }
  69.            
  70.             //Rounding off
  71.             red = red + 0.5;
  72.             green = green + 0.5;
  73.             blue = blue + 0.5;
  74.            
  75.             // Apply average value to all
  76.             image[i][j].rgbtRed = red;
  77.             image[i][j].rgbtBlue = green;
  78.             image[i][j].rgbtGreen = blue;
  79.            
  80.         }
  81.     }
  82.    
  83.    
  84.     return;
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment