- void blur(int height, int width, RGBTRIPLE image[height][width])
- {
- // grid: , width -1 is leftwards , width +1 is rightwards, height +1 is above height -1 is below
- int TempRed =0;
- int TempBlue=0;
- int TempGreen=0;
- int pixelcount=0;
- RGBTRIPLE buffer2[height][width];
- RGBTRIPLE blur[height][width];
- for(int y = 0 ; y < height ; y++)
- {
- for(int x = 0 ; x < width ; x++)
- {
- buffer2[y][x]= image[y][x];
- }
- }
- for(int y = 0 ; y < height ; y++)
- {
- for(int x = 0 ; x < width ; x++)
- {
- if(y - 1 > -1 && x - 1 > -1)
- {
- TempBlue +=buffer2[y-1][x-1].rgbtBlue;
- TempRed +=buffer2[y-1][x-1].rgbtRed;
- TempGreen +=buffer2[y-1][x-1].rgbtGreen;
- pixelcount++;
- }
- if(y - 1 > -1)
- {
- TempBlue +=buffer2[y-1][x].rgbtBlue;
- TempRed +=buffer2[y-1][x].rgbtRed;
- TempGreen +=buffer2[y-1][x].rgbtGreen;
- pixelcount++;
- }
- if(y - 1 > -1 && x + 1 < width)
- {
- TempBlue +=buffer2[y-1][x+1].rgbtBlue;
- TempRed +=buffer2[y-1][x+1].rgbtRed;
- TempGreen +=buffer2[y-1][x+1].rgbtGreen;
- pixelcount++;
- }
- if(x - 1 > -1)
- {
- TempBlue +=buffer2[y][x - 1].rgbtBlue;
- TempRed +=buffer2[y][x - 1].rgbtRed;
- TempGreen +=buffer2[y][x - 1].rgbtGreen;
- pixelcount++;
- }
- TempBlue +=buffer2[y][x].rgbtBlue;
- TempRed +=buffer2[y][x].rgbtRed;
- TempGreen +=buffer2[y][x].rgbtGreen;
- pixelcount++;
- if(x + 1 < width)
- {
- TempBlue +=buffer2[y][x+ 1].rgbtBlue;
- TempRed +=buffer2[y][x+ 1].rgbtRed;
- TempGreen +=buffer2[y][x+ 1].rgbtGreen;
- pixelcount++;
- }
- if(y + 1 < height && x - 1 > -1)
- {
- TempBlue +=buffer2[y+1][x-1].rgbtBlue;
- TempRed +=buffer2[y+1][x-1].rgbtRed;
- TempGreen +=buffer2[y+1][x-1].rgbtGreen;
- pixelcount++;
- }
- if(y + 1 < height )
- {
- TempBlue +=buffer2[y+1][x].rgbtBlue;
- TempRed +=buffer2[y+1][x].rgbtRed;
- TempGreen +=buffer2[y+1][x].rgbtGreen;
- pixelcount++;
- }
- if(y + 1 < height && x + 1 < width)
- {
- TempBlue +=buffer2[y+1][x+1].rgbtBlue;
- TempRed +=buffer2[y+1][x+1].rgbtRed;
- TempGreen +=buffer2[y+1][x+1].rgbtGreen;
- pixelcount++;
- }
- blur[y][x].rgbtBlue = round(TempBlue/pixelcount);
- blur[y][x].rgbtRed = round(TempRed/pixelcount);
- blur[y][x].rgbtGreen = round(TempGreen/pixelcount);
- }
- }
- for(int y = 0 ; y < height ; y++)
- {
- for(int x = 0 ; x < width ; x++)
- {
- image[y][x]= blur[y][x];
- }
- }
- return;
- }