Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Nama : Mey Nurjanah

Kelas : D3 PJJ AK 2015


NRP :2103157031

Source Code program:

using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Threading.Tasks;
System.Waindows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Bitmap objBitmap;
Bitmap objBitmap1;
public Form1()
{
InitializeComponent();
}
//Load gambar
private void button1_Click(object sender, EventArgs e)
{
DialogResult d = openFileDialog1.ShowDialog();
if (d == DialogResult.OK)
{
objBitmap = new Bitmap(openFileDialog1.FileName);
pictureBox1.Image = objBitmap;
}
}
//Grayscale
private void button2_Click(object sender, EventArgs e)
{
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)
{
Color w = objBitmap.GetPixel(x, y);
int r = w.R;
int g = w.G;
int b = w.B;
int xg = (int)((r + g + b) / 3);
Color wb = Color.FromArgb(xg, xg, xg);
objBitmap.SetPixel(x, y, wb);
}
pictureBox1.Image = objBitmap;
}

//Histogram
private void button3_Click(object sender, EventArgs e)
{
float[] h = new float[256];
int i;
for (i = 0; i < 256; i++) h[i] = 0;
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)
{
Color w = objBitmap.GetPixel(x, y);
int xg = w.R;
h[xg] = h[xg] + 1;
}
for (i = 0; i < 256; i++)
{
chart1.Series["Series1"].Points.AddXY(i, h[i]);
}
}
//CDF
private void button4_Click(object sender, EventArgs e)
{
float[] h = new float[256];
float[] c = new float[256];
int i;
for (i = 0; i < 256; i++) h[i] = 0;
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)
{
Color w = objBitmap.GetPixel(x, y);
int xg = w.R;
h[xg] = h[xg] + 1;
}
c[0] = h[0];
for (i = 1; i < 256; i++) c[i] = c[i - 1] + h[i];
for (i = 0; i < 256; i++)
{
chart1.Series["Series1"].Points.AddXY(i, c[i]);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
//PDF
private void button5_Click(object sender, EventArgs e)
{
objBitmap = new Bitmap(objBitmap);
float[] h = new float[256];
int i;
int nx = objBitmap.Width;
int ny = objBitmap.Height;
for (i = 0; i < 256; i++) h[i] = 0;
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)

{
Color w = objBitmap.GetPixel(x, y);
int xg = w.R;
h[xg] = h[xg] + 1;
}
for (i = 0; i < 256; i++)
{
chart3.Series["Series1"].Points.AddXY(i, h[i] / nx / ny);
}
}
//Ekualisasi
private void button6_Click(object sender, EventArgs e)
{
objBitmap1 = new Bitmap(objBitmap);
float[] h = new float[256];
float[] c = new float[256];
int i;
for (i = 0; i < 256; i++) h[i] = 0;
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)
{
Color w = objBitmap.GetPixel(x, y);
int xg = w.R;
h[xg] = h[xg] + 1;
}
c[0] = h[0];
for (i = 1; i < 256; i++) c[i] = c[i - 1] + h[i];
int nx = objBitmap.Width;
int ny = objBitmap.Height;
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)
{
Color w = objBitmap.GetPixel(x, y);
int xg = w.R;
int xb = (int)(255 * c[xg] / nx / ny);
Color wb = Color.FromArgb(xb, xb, xb);
objBitmap1.SetPixel(x, y, wb);
}
pictureBox2.Image = objBitmap1;
}
//Histogram Equalization
private void button7_Click(object sender, EventArgs e)
{
objBitmap = new Bitmap(objBitmap1);
float[] h = new float[256];
int i;
for (i = 0; i < 256; i++) h[i] = 0;
for (int x = 0; x < objBitmap.Width; x++)
for (int y = 0; y < objBitmap.Height; y++)
{
Color w = objBitmap.GetPixel(x, y);
int xg = w.R;
h[xg] = h[xg] + 1;
}
for (i = 0; i < 256; i++)
{

chart2.Series["Series1"].Points.AddXY(i, h[i]);
}
}
}
}

Hasil:

You might also like