Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void blur(int height, int width, RGBTRIPLE image[height][width])
- {
- int red;
- int blue;
- int green;
- int counter = 0;
- RGBTRIPLE copy[height][width];
- for(int i =0;i<height;i++)
- {
- for(int j = 0;j<width;j++)
- {
- copy[i][j]=image[i][j];
- }
- }
- for(int i =0;i<height;i++)
- {
- for(int j = 0;j<width;j++)
- {
- red = image[i][j].rgbtRed;
- green = image[i][j].rgbtGreen;
- blue = image[i][j].rgbtBlue;
- counter++;
- //height
- if(i==0)
- {
- red = round(((float)red*counter+image[i+1][j].rgbtRed)/(counter+1));
- green = round(((float)green*counter+image[i+1][j].rgbtGreen)/(counter+1));
- blue = round(((float)blue*counter+image[i+1][j].rgbtBlue)/(counter+1));
- counter++;
- }else if(i==height-1)
- {
- red = round(((float)red*counter+image[i-1][j].rgbtRed)/(counter+1));
- blue=round(((float)blue*counter+image[i-1][j].rgbtBlue)/(counter+1));
- green=round(((float)green*counter+image[i-1][j].rgbtGreen)/(counter+1));
- counter++;
- }else
- {
- red = round(((float)red*counter+image[i-1][j].rgbtRed+image[i+1][j].rgbtRed)/(counter+2));
- blue=round(((float)blue*counter+image[i-1][j].rgbtBlue+image[i+1][j].rgbtBlue)/(counter+2));
- green = round(((float)green*counter+image[i-1][j].rgbtGreen+image[i+1][j].rgbtBlue)/(counter+2));
- counter+=2;
- }
- //width
- if(j==0)
- {
- red = round(((float)red*counter+image[i][j+1].rgbtRed)/(counter+1));
- green = round(((float)green*counter+image[i][j+1].rgbtGreen)/(counter+1));
- blue = round(((float)blue*counter+image[i][j+1].rgbtBlue)/(counter+1));
- counter++;
- }else if(j==width-1)
- {
- red = round(((float)red*counter+image[i][j-1].rgbtRed)/(counter+1));
- green = round(((float)green*counter+image[i][j-1].rgbtGreen)/(counter+1));
- blue = round(((float)blue*counter+image[i][j-1].rgbtBlue)/(counter+1));
- counter++;
- }else
- {
- red = round(((float)red*counter+image[i][j-1].rgbtRed+image[i][j+1].rgbtRed)/(counter+2));
- blue = round(((float)blue*counter+image[i][j-1].rgbtBlue+image[i][j+1].rgbtBlue)/(counter+2));
- green = round(((float)green*counter+image[i][j-1].rgbtGreen+image[i][j+1].rgbtGreen)/(counter+2));
- counter+=2;
- }
- //edge case
- if(i==0&&j==0)
- {
- red = round(((float)red*counter+image[i+1][j+1].rgbtRed)/(counter+1));
- blue = round(((float)blue*counter+image[i+1][j+1].rgbtBlue)/(counter+1));
- green = round(((float)green*counter+image[i+1][j+1].rgbtBlue)/(counter+1));
- counter++;
- }else if(i==height-1&&j==width-1)
- {
- red = round(((float)red*counter+image[i-1][j-1].rgbtRed)/(counter+1));
- blue = round(((float)blue*counter+image[i-1][j-1].rgbtBlue)/(counter+1));
- green = round(((float)green*counter+image[i-1][j-1].rgbtGreen)/(counter+1));
- counter++;
- }else if(i==height-1&&j==0)
- {
- red = round(((float)red*counter+image[i-1][j+1].rgbtRed)/(counter+1));
- blue = round(((float)blue*counter+image[i-1][j+1].rgbtBlue)/(counter+1));
- green = round(((float)green*counter+image[i-1][j+1].rgbtGreen)/(counter+1));
- counter++;
- }else if(i==0&&j==width-1)
- {
- red = round(((float)red*counter+image[i+1][j-1].rgbtRed)/(counter+1));
- blue = round(((float)blue*counter+image[i+1][j-1].rgbtBlue)/(counter+1));
- green = round(((float)green*counter+image[i+1][j-1].rgbtBlue)/(counter+1));
- }else if(i==0)
- {
- red = round(((float)red*counter+image[i+1][j-1].rgbtRed+image[i+1][j-1].rgbtBlue)/(counter+2));
- blue = round(((float)blue*counter+image[i+1][j-1].rgbtBlue+image[i+1][j-1].rgbtBlue)/(counter+2));
- green = round(((float)green*counter+image[i+1][j-1].rgbtGreen+image[i+1][j-1].rgbtGreen)/(counter+2));
- counter+=2;
- }else if(i==height-1)
- {
- red = round(((float)red*counter+image[i-1][j-1].rgbtRed+image[i-1][j+1].rgbtRed)/(counter+2));
- blue = round(((float)blue*counter+image[i-1][j-1].rgbtBlue+image[i-1][j+1].rgbtBlue)/(counter+2));
- green = round(((float)green*counter+image[i-1][j-1].rgbtGreen+image[i-1][j+1].rgbtGreen)/(counter+2));
- counter+=2;
- }else if(j==0)
- {
- red = round(((float)red*counter+image[i-1][j+1].rgbtRed+image[i+1][j+1].rgbtRed)/(counter+2));
- blue = round(((float)blue*counter+image[i-1][j+1].rgbtBlue+image[i+1][j+1].rgbtBlue)/(counter+2));
- green = round(((float)green*counter+image[i-1][j+1].rgbtGreen+image[i+1][j+1].rgbtGreen)/(counter+2));
- counter+=2;
- }else if(j==width-1)
- {
- red = round(((float)red*counter+image[i-1][j-1].rgbtRed+image[i+1][j-1].rgbtRed)/(counter+2));
- blue = round(((float)blue*counter+image[i-1][j-1].rgbtBlue+image[i+1][j-1].rgbtBlue)/(counter+2));
- green = round(((float)green*counter+image[i-1][j-1].rgbtGreen+image[i+1][j-1].rgbtGreen)/(counter+2));
- }else
- {
- red = round(((float)red*counter+image[i-1][j-1].rgbtRed+image[i+1][j+1].rgbtRed+image[i-1][j+1].rgbtRed+image[i+1][j-1].rgbtRed)/(counter+4));
- blue = round(((float)blue*counter+image[i-1][j-1].rgbtBlue+image[i+1][i+1].rgbtBlue+image[i-1][j+1].rgbtBlue+image[i+1][j-1].rgbtBlue)/(counter+4));
- green = round(((float)green*counter+image[i-1][j-1].rgbtGreen+image[i+1][i+1].rgbtGreen+image[i-1][i+1].rgbtGreen+image[i+1][i-1].rgbtGreen)/(counter+4));
- counter+=2;
- }
- copy[i][j].rgbtRed = red;
- copy[i][j].rgbtBlue = blue;
- copy[i][j].rgbtGreen = green;
- }
- }
- for(int i =0;i<height;i++)
- {
- for(int j = 0;j<width;j++)
- {
- image[i][j] = copy[i][j];
- }
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement