Skip to content

Instantly share code, notes, and snippets.

@Cellane
Created November 1, 2012 14:22
Show Gist options
  • Save Cellane/3993904 to your computer and use it in GitHub Desktop.
Save Cellane/3993904 to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FirstTest
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void BrightnessButtonClick(object sender, EventArgs e)
{
var bitmap = new Bitmap(picture.Image);
var graphics = picture.CreateGraphics();
var colors = new List<Color>();
var points = new List<Point>();
var pen = new Pen(Color.Black, 2);
for (var i = 0; i < bitmap.Width; i++)
{
var point = new Point(i, 255 - bitmap.GetPixel(i, 0).R);
points.Add(point);
}
graphics.DrawLines(pen, points.ToArray());
}
private void ThresholdingButtonClick(object sender, EventArgs e)
{
var bitmap = new Bitmap(picture.Image);
var total = 0;
var sum = bitmap.Width * bitmap.Height;
var average = 0.0;
for (var i = 0; i < bitmap.Width; i++)
{
for (var j = 0; j < bitmap.Height; j++)
{
total += bitmap.GetPixel(i, j).R;
}
}
average = (float) total / (float) sum;
for (var i = 0; i < bitmap.Width; i++)
{
for (var j = 0; j < bitmap.Height; j++)
{
bitmap.SetPixel(i, j, bitmap.GetPixel(i, j).R < average ? Color.Black : Color.White);
}
}
picture.Image = bitmap;
picture.Refresh();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment