Note that there are some explanatory texts on larger screens.

plurals
  1. POSharpen on a Bitmap using C#
    primarykey
    data
    text
    <p>I want to put a sharpen filter on an image. I have found a web <a href="http://www.student.kuleuven.be/~m0216922/CG/filtering.html" rel="noreferrer">with short tutorial</a>. I tried to do it in C# so here is my code. Anyway, I tried to find out why it is not working. I do not know if I am doing something wrong, if yes, please advise me what to do to make it work as it should be. Thanks</p> <pre><code> public static Bitmap sharpen(Bitmap image) { Bitmap sharpenImage = new Bitmap(image.Width, image.Height); int filterWidth = 3; int filterHeight = 3; int w = image.Width; int h = image.Height; double[,] filter = new double[filterWidth, filterHeight]; filter[0, 0] = filter[0, 1] = filter[0, 2] = filter[1, 0] = filter[1, 2] = filter[2, 0] = filter[2, 1] = filter[2, 2] = -1; filter[1, 1] = 9; double factor = 1.0; double bias = 0.0; Color[,] result = new Color[image.Width, image.Height]; for (int x = 0; x &lt; w; ++x) { for (int y = 0; y &lt; h; ++y) { double red = 0.0, green = 0.0, blue = 0.0; Color imageColor = image.GetPixel(x, y); for (int filterX = 0; filterX &lt; filterWidth; filterX++) { for (int filterY = 0; filterY &lt; filterHeight; filterY++) { int imageX = (x - filterWidth / 2 + filterX + w) % w; int imageY = (y - filterHeight / 2 + filterY + h) % h; red += imageColor.R * filter[filterX, filterY]; green += imageColor.G * filter[filterX, filterY]; blue += imageColor.B * filter[filterX, filterY]; } int r = Math.Min(Math.Max((int)(factor * red + bias), 0), 255); int g = Math.Min(Math.Max((int)(factor * green + bias), 0), 255); int b = Math.Min(Math.Max((int)(factor * blue + bias), 0), 255); result[x, y] = Color.FromArgb(r, g, b); } } } for (int i = 0; i &lt; w; ++i) { for (int j = 0; j &lt; h; ++j) { sharpenImage.SetPixel(i, j, result[i, j]); } } return sharpenImage; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload