Sie sind auf Seite 1von 12

LAPORAN PRAKTIKUM 5 DAN 7

PENGOLAHAN CITRA

NAMA : KHAIRUL UMAM


NRP : 2103197111
KELAS : C

TEKNIK INFORMATIKA

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA


2020
Kode Program :

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Image5

public partial class Form1 : Form

Bitmap objBitmap;

Bitmap objBitmap1;

Bitmap objBitmap2;

Bitmap objBitmap3;

Bitmap objBitmap4;

Bitmap objBitmap5;

public Form1()

InitializeComponent();

private void Form1_Load(object sender, EventArgs e)

}
private void button1_Click(object sender, EventArgs e)

DialogResult d = openFileDialog1.ShowDialog(); if (d == DialogResult.OK)

objBitmap = new Bitmap(openFileDialog1.FileName);

pictureBox1.Image = objBitmap;

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;

private void button3_Click(object sender, EventArgs e)

objBitmap1 = new Bitmap(objBitmap);

int a = Convert.ToInt16(textBox1.Text);

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 = xg + a;

//int xb = xg + 255;

if (xb < 0) xb = 0;

if (xb > 255) xb = 255;

Color wb = Color.FromArgb(xb, xb, xb);

objBitmap1.SetPixel(x, y, wb);

pictureBox2.Image = objBitmap1;

private void button4_Click(object sender, EventArgs e)

objBitmap2 = new Bitmap(objBitmap);

float c = Convert.ToSingle(textBox2.Text);

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)(c * xg);

Color wb = Color.FromArgb(xb, xb, xb);

objBitmap2.SetPixel(x, y, wb);

pictureBox3.Image = objBitmap2;

private void button5_Click(object sender, EventArgs e)

{
objBitmap3 = new Bitmap(objBitmap);

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 - xg);

Color wb = Color.FromArgb(xb, xb, xb);

objBitmap3.SetPixel(x, y, wb);

pictureBox4.Image = objBitmap3;

private void button6_Click(object sender, EventArgs e)

objBitmap4 = new Bitmap(objBitmap);

//Mencari nilai maksimum dan minimum

int xgmax=0;

int xgmin=255;

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;

if (xg < xgmin) xgmin = xg;

if (xg > xgmax) xgmax = xg;

for (int x = 0; x < objBitmap.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++){

Color w = objBitmap.GetPixel(x, y);


int xg = w.R;

int xb = (int)(255*(xg-xgmin)/(xgmax-xgmin));

Color wb = Color.FromArgb(xb, xb, xb);

objBitmap4.SetPixel(x, y, wb);

pictureBox5.Image = objBitmap4;

private void button7_Click(object sender, EventArgs e)

objBitmap5 = 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);

objBitmap5.SetPixel(x, y, wb);

pictureBox6.Image = objBitmap5;

private void button8_Click(object sender, EventArgs e)

//grayscale

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]);

//brightness

float[] c = new float[256];

int b;

for (b = 0; b < 256; b++) c[b] = 0;

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{
Color w = objBitmap1.GetPixel(x, y);

int xg = w.R;

c[xg] = c[xg] + 1;

for (b = 0; b <256; b++)

chart2.Series["Series1"].Points.AddXY(b, c[b]);

//contrast

float[] d = new float[256];

int f;

for (f = 0; f < 256; f++) d[f] = 0;

for (int x = 0; x < objBitmap2.Width; x++)

for (int y = 0; y < objBitmap2.Height; y++)

Color w = objBitmap2.GetPixel(x, y);

int xg = w.R;

d[xg] = d[xg] + 1;

for (f = 0; f < 256; f++)

chart3.Series["Series1"].Points.AddXY(f, d[f]);

//invers

float[] g = new float[256];

int j;

for (j = 0; j < 256; j++) g[j] = 0;

for (int x = 0; x < objBitmap3.Width; x++)

for (int y = 0; y < objBitmap3.Height; y++)


{

Color w = objBitmap3.GetPixel(x, y);

int xg = w.R;

g[xg] = g[xg] + 1;

for (j = 0; j < 256; j++)

chart4.Series["Series1"].Points.AddXY(j, g[j]);

//autolevel

float[] k = new float[256];

int l;

for (l = 0; l < 256; l++) k[l] = 0;

for (int x = 0; x < objBitmap3.Width; x++)

for (int y = 0; y < objBitmap4.Height; y++)

Color w = objBitmap4.GetPixel(x, y);

int xg = w.R;

k[xg] = k[xg] + 1;

for (l = 0; l < 256; l++)

chart5.Series["Series1"].Points.AddXY(l, k[l]);

//ekualisasi

float[] m = new float[256];

int n;

for (n = 0; n < 256; n++)

{
m[n] = 0;

chart6.Series["Series1"].Points.AddXY(n, m[n]);

for (int x =0; x < objBitmap5.Width; x++)

for(int y = 0; y < objBitmap5.Height; y++)

Color w = objBitmap5.GetPixel(x, y);

int xg = w.B;

m[xg] = m[xg] + 1;

for(n = 0; n < 256; n++)

chart6.Series["Series1"].Points.AddXY(n, m[n]);

}
Output :

Das könnte Ihnen auch gefallen