1. code invers c#
objBitmap2 = new Bitmap(objBitmap1); for (int x = 0; x < objBitmap1.Width; x++) for (int y = 0; y < objBitmap1.Height; y++) { Color w = objBitmap1.GetPixel(x, y); int xg = (int)((w.R + w.G + w.B) / 3); int xi = 255-xg; Color new_w = Color.FromArgb(xi, xi, xi); objBitmap2.SetPixel(x, y, new_w); } pictureBox2.Image = objBitmap2; //grafik float[] h = new float[256]; int i; for (i = 0; i < 256; i++) h[i] = 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 = (int)((w.R + w.G + w.B) / 3); int xi = 255 - xg; h[xi] = h[xi] + 1; } for (i = 0; i < 256; i++) { chart1.Series["Series1"].Points.AddXY(i, h[i]); } |
Output
Keterangan / :
Invers membalik nilai derajat keabuan dari cerah menjadi gelap atau dari gelap menjadi terang. Misalnya dari derajat keabuan 255 akan menjadi 0 begitu juga sebaliknya hal ini karena dipengaruhi dengan rumus
Int xi = 255 – xg . jika dilakukan hitungan seperti berikut:
Contoh derajat keabuan pada table
Derajat keabuan | Derajat invers |
35 | 255 – 35 = 220 |
55 | 255 – 55 = 200 |
115 | 255 –115 = 140 |
255 | 255 – 255 = 0 |
Dari table diatas dapat diketahui bahwa invers meruapakan lawan dari derajat keabuan kecil menjadi besar dan begitu sebaliknya. Pada gambar yang aslinya titik yang memiliki gambar cerah maka akan menjadi gelap begitu sebaliknya.
Pada gambar histogram gambar lebih dominasi warna gelap karena grafik di sebelah kiri terlihat lebih banyak. Dari pada grafik disisi kiri histogram. Untuk menunjukan apakah histogram pada invers beda objek menghasilkan model histogram yang sama berikut percobaannya
Dibandingkan dengan gambar awal seperti ini
Hasil dari kedua histogram ternyata mirip yaitu grafik lebih banyak di bagian kiri yang menandakan gambar dominasi warna gelap.