Skip to content

Instantly share code, notes, and snippets.

@Omi98
Created July 15, 2020 09:27
Show Gist options
  • Save Omi98/23018df62bc9146724da53beb770df01 to your computer and use it in GitHub Desktop.
Save Omi98/23018df62bc9146724da53beb770df01 to your computer and use it in GitHub Desktop.
Edge Detection filter
// Detect edges
void edges(int height, int width, RGBTRIPLE image[height][width])
{
RGBTRIPLE temp[height][width];
/*creating another temp array and
storing all the original pixels in it
so that the original image pixels
are not changed/altered during the
calculations.*/
for (int h = 0; h < height; h ++)
{
for (int w = 0; w < width; w ++)
{
temp[h][w] = image[h][w];
}
}
float gx = 0.00;
float gy = 0.00;
float value_red = 0.00;
float value_green = 0.00;
float value_blue = 0.00;
for (int h = 0; h < height; h ++)
{
for (int w = 0; w < width; w ++)
{
if ((h == 0) && (w == 0))
{
// code (1)
// left top corner
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 2) +
(temp[h + 1][w].rgbtRed * 0) + (temp[h + 1][w + 1].rgbtRed * 1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 0) +
(temp[h + 1][w].rgbtRed * 2) + (temp[h + 1][w + 1].rgbtRed * 1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 2) +
(temp[h + 1][w].rgbtGreen * 0) + (temp[h + 1][w + 1].rgbtGreen * 1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 0) +
(temp[h + 1][w].rgbtGreen * 2) + (temp[h + 1][w + 1].rgbtGreen * 1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 2) +
(temp[h + 1][w].rgbtBlue * 0) + (temp[h + 1][w + 1].rgbtBlue * 1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 0) +
(temp[h + 1][w].rgbtBlue * 2) + (temp[h + 1][w + 1].rgbtBlue * 1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
image[h][w].rgbtBlue = round(value_blue);
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h != 0) && (h != (height - 1)) && (w == 0))
{
// code (2)
// left edge
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 2) + (temp[h - 1][w].rgbtRed * 0) +
(temp[h - 1][w + 1].rgbtRed * 1) + (temp[h + 1][w].rgbtRed * 0) + (temp[h + 1][w + 1].rgbtRed * 1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 0) + (temp[h - 1][w].rgbtRed * -2) +
(temp[h - 1][w + 1].rgbtRed * -1) + (temp[h + 1][w].rgbtRed * 2) + (temp[h + 1][w + 1].rgbtRed * 1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 2) + (temp[h - 1][w].rgbtGreen * 0) +
(temp[h - 1][w + 1].rgbtGreen * 1) + (temp[h + 1][w].rgbtGreen * 0) + (temp[h + 1][w + 1].rgbtGreen * 1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 0) + (temp[h - 1][w].rgbtGreen * -2) +
(temp[h - 1][w + 1].rgbtGreen * -1) + (temp[h + 1][w].rgbtGreen * 2) + (temp[h + 1][w + 1].rgbtGreen * 1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 2) + (temp[h - 1][w].rgbtBlue * 0) +
(temp[h - 1][w + 1].rgbtBlue * 1) + (temp[h + 1][w].rgbtBlue * 0) + (temp[h + 1][w + 1].rgbtBlue * 1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 0) + (temp[h - 1][w].rgbtBlue * -2) +
(temp[h - 1][w + 1].rgbtBlue * -1) + (temp[h + 1][w].rgbtBlue * 2) + (temp[h + 1][w + 1].rgbtBlue * 1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h != 0) && (h == (height - 1)) && (w == 0))
{
// code (3)
// left bottom corner
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 2) +
(temp[h - 1][w].rgbtRed * 0) + (temp[h - 1][w + 1].rgbtRed * 1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 0) +
(temp[h - 1][w].rgbtRed * -2) + (temp[h - 1][w + 1].rgbtRed * -1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 2) +
(temp[h - 1][w].rgbtGreen * 0) + (temp[h - 1][w + 1].rgbtGreen * 1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 0) +
(temp[h - 1][w].rgbtGreen * -2) + (temp[h - 1][w + 1].rgbtGreen * -1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 2) +
(temp[h - 1][w].rgbtBlue * 0) + (temp[h - 1][w + 1].rgbtBlue * 1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 0) +
(temp[h - 1][w].rgbtBlue * -2) + (temp[h - 1][w + 1].rgbtBlue * -1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h == (height - 1)) && (w != 0) && (w != (width - 1)))
{
// code (4)
// bottom edge
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 2) + (temp[h][w - 1].rgbtRed * -2) +
(temp[h - 1][w].rgbtRed * 0) + (temp[h - 1][w + 1].rgbtRed * 1) + (temp[h - 1][w - 1].rgbtRed * -1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * 0) +
(temp[h - 1][w].rgbtRed * -2) + (temp[h - 1][w + 1].rgbtRed * -1) + (temp[h - 1][w - 1].rgbtRed * -1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 2) + (temp[h][w - 1].rgbtGreen * -2) +
(temp[h - 1][w].rgbtGreen * 0) + (temp[h - 1][w + 1].rgbtGreen * 1) + (temp[h - 1][w - 1].rgbtGreen * -1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * 0) +
(temp[h - 1][w].rgbtGreen * -2) + (temp[h - 1][w + 1].rgbtGreen * -1) + (temp[h - 1][w - 1].rgbtGreen * -1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 2) + (temp[h][w - 1].rgbtBlue * -2) +
(temp[h - 1][w].rgbtBlue * 0) + (temp[h - 1][w + 1].rgbtBlue * 1) + (temp[h - 1][w - 1].rgbtBlue * -1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * 0) +
(temp[h - 1][w].rgbtBlue * -2) + (temp[h - 1][w + 1].rgbtBlue * -1) + (temp[h - 1][w - 1].rgbtBlue * -1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h == (height - 1)) && (w == (width - 1)))
{
// code (5)
// right bottom corner
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * -2) +
(temp[h - 1][w].rgbtRed * 0) + (temp[h - 1][w - 1].rgbtRed * -1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * 0) +
(temp[h - 1][w].rgbtRed * -2) + (temp[h - 1][w - 1].rgbtRed * -1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * -2) +
(temp[h - 1][w].rgbtGreen * 0) + (temp[h - 1][w - 1].rgbtGreen * -1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * 0) +
(temp[h - 1][w].rgbtGreen * -2) + (temp[h - 1][w - 1].rgbtGreen * -1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * -2) +
(temp[h - 1][w].rgbtBlue * 0) + (temp[h - 1][w - 1].rgbtBlue * -1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * 0) +
(temp[h - 1][w].rgbtBlue * -2) + (temp[h - 1][w - 1].rgbtBlue * -1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h != 0) && (h != (height - 1)) && (w == (width - 1)))
{
// code (6)
// right edge
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * -2) + (temp[h + 1][w].rgbtRed * 0) +
(temp[h + 1][w - 1].rgbtRed * -1) + (temp[h - 1][w].rgbtRed * 0) + (temp[h - 1][w - 1].rgbtRed * -1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * 0) + (temp[h + 1][w].rgbtRed * 2) +
(temp[h + 1][w - 1].rgbtRed * 1) + (temp[h - 1][w].rgbtRed * -2) + (temp[h - 1][w - 1].rgbtRed * -1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * -2) + (temp[h + 1][w].rgbtGreen * 0) +
(temp[h + 1][w - 1].rgbtGreen * -1) + (temp[h - 1][w].rgbtGreen * 0) + (temp[h - 1][w - 1].rgbtGreen * -1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * 0) + (temp[h + 1][w].rgbtGreen * 2) +
(temp[h + 1][w - 1].rgbtGreen * 1) + (temp[h - 1][w].rgbtGreen * -2) + (temp[h - 1][w - 1].rgbtGreen * -1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * -2) + (temp[h + 1][w].rgbtBlue * 0) +
(temp[h + 1][w - 1].rgbtBlue * -1) + (temp[h - 1][w].rgbtBlue * 0) + (temp[h - 1][w - 1].rgbtBlue * -1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * 0) + (temp[h + 1][w].rgbtBlue * 2) +
(temp[h + 1][w - 1].rgbtBlue * 1) + (temp[h - 1][w].rgbtBlue * -2) + (temp[h - 1][w - 1].rgbtBlue * -1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h == 0) && (w == (width - 1)))
{
// code (7)
// top right corner
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * -2) +
(temp[h + 1][w].rgbtRed * 0) + (temp[h + 1][w - 1].rgbtRed * -1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * 0) +
(temp[h + 1][w].rgbtRed * 2) + (temp[h + 1][w - 1].rgbtRed * 1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * -2) +
(temp[h + 1][w].rgbtGreen * 0) + (temp[h + 1][w - 1].rgbtGreen * -1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * 0) +
(temp[h + 1][w].rgbtGreen * 2) + (temp[h + 1][w - 1].rgbtGreen * 1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * -2) +
(temp[h + 1][w].rgbtBlue * 0) + (temp[h + 1][w - 1].rgbtBlue * -1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * 0) +
(temp[h + 1][w].rgbtBlue * 2) + (temp[h + 1][w - 1].rgbtBlue * 1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h == 0) && (w != 0) && (w != (width - 1)))
{
// code (8)
// top edge
// for red
gx = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 2) + (temp[h][w - 1].rgbtRed * -2) +
(temp[h + 1][w].rgbtRed * 0) + (temp[h + 1][w + 1].rgbtRed * 1) + (temp[h + 1][w - 1].rgbtRed * -1);
gy = 0 + (temp[h][w].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * 0) +
(temp[h + 1][w].rgbtRed * 2) + (temp[h + 1][w + 1].rgbtRed * 1) + (temp[h + 1][w - 1].rgbtRed * 1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 2) + (temp[h][w - 1].rgbtGreen * -2) +
(temp[h + 1][w].rgbtGreen * 0) + (temp[h + 1][w + 1].rgbtGreen * 1) + (temp[h + 1][w - 1].rgbtGreen * -1);
gy = 0 + (temp[h][w].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * 0) +
(temp[h + 1][w].rgbtGreen * 2) + (temp[h + 1][w + 1].rgbtGreen * 1) + (temp[h + 1][w - 1].rgbtGreen * 1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 2) + (temp[h][w - 1].rgbtBlue * -2) +
(temp[h + 1][w].rgbtBlue * 0) + (temp[h + 1][w + 1].rgbtBlue * 1) + (temp[h + 1][w - 1].rgbtBlue * -1);
gy = 0 + (temp[h][w].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * 0) +
(temp[h + 1][w].rgbtBlue * 2) + (temp[h + 1][w + 1].rgbtBlue * 1) + (temp[h + 1][w - 1].rgbtBlue * 1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else if ((h != 0) && (h != (height - 1)) && (w != 0) && (w != (width - 1)))
{
// code (9)
// middle
// for red
gx = (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * -2) + (temp[h][w + 1].rgbtRed * 2) +
(temp[h - 1][w].rgbtRed * 0) + (temp[h - 1][w - 1].rgbtRed * -1) + (temp[h - 1][w + 1].rgbtRed * 1) +
(temp[h + 1][w].rgbtRed * 0) + (temp[h + 1][w - 1].rgbtRed * -1) + (temp[h + 1][w + 1].rgbtRed * 1);
gy = (temp[h][w].rgbtRed * 0) + (temp[h][w - 1].rgbtRed * 0) + (temp[h][w + 1].rgbtRed * 0) +
(temp[h - 1][w].rgbtRed * -2) + (temp[h - 1][w - 1].rgbtRed * -1) + (temp[h - 1][w + 1].rgbtRed * -1) +
(temp[h + 1][w].rgbtRed * 2) + (temp[h + 1][w - 1].rgbtRed * 1) + (temp[h + 1][w + 1].rgbtRed * 1);
value_red = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_red) > 255)
{
image[h][w].rgbtRed = 255;
}
else
{
image[h][w].rgbtRed = round(value_red);
}
// for green
gx = (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * -2) + (temp[h][w + 1].rgbtGreen * 2) +
(temp[h - 1][w].rgbtGreen * 0) + (temp[h - 1][w - 1].rgbtGreen * -1) + (temp[h - 1][w + 1].rgbtGreen * 1) +
(temp[h + 1][w].rgbtGreen * 0) + (temp[h + 1][w - 1].rgbtGreen * -1) + (temp[h + 1][w + 1].rgbtGreen * 1);
gy = (temp[h][w].rgbtGreen * 0) + (temp[h][w - 1].rgbtGreen * 0) + (temp[h][w + 1].rgbtGreen * 0) +
(temp[h - 1][w].rgbtGreen * -2) + (temp[h - 1][w - 1].rgbtGreen * -1) + (temp[h - 1][w + 1].rgbtGreen * -1) +
(temp[h + 1][w].rgbtGreen * 2) + (temp[h + 1][w - 1].rgbtGreen * 1) + (temp[h + 1][w + 1].rgbtGreen * 1);
value_green = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_green) > 255)
{
image[h][w].rgbtGreen = 255;
}
else
{
image[h][w].rgbtGreen = round(value_green);
}
// for blue
gx = (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * -2) + (temp[h][w + 1].rgbtBlue * 2) +
(temp[h - 1][w].rgbtBlue * 0) + (temp[h - 1][w - 1].rgbtBlue * -1) + (temp[h - 1][w + 1].rgbtBlue * 1) +
(temp[h + 1][w].rgbtBlue * 0) + (temp[h + 1][w - 1].rgbtBlue * -1) + (temp[h + 1][w + 1].rgbtBlue * 1);
gy = (temp[h][w].rgbtBlue * 0) + (temp[h][w - 1].rgbtBlue * 0) + (temp[h][w + 1].rgbtBlue * 0) +
(temp[h - 1][w].rgbtBlue * -2) + (temp[h - 1][w - 1].rgbtBlue * -1) + (temp[h - 1][w + 1].rgbtBlue * -1) +
(temp[h + 1][w].rgbtBlue * 2) + (temp[h + 1][w - 1].rgbtBlue * 1) + (temp[h + 1][w + 1].rgbtBlue * 1);
value_blue = sqrt(((gx)*(gx)) + ((gy)*(gy)));
if (round(value_blue) > 255)
{
image[h][w].rgbtBlue = 255;
}
else
{
image[h][w].rgbtBlue = round(value_blue);
}
}
else
{
break;
}
}
}
// ./filter -e images/yard.bmp out.bmp
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment