Politeknik Elektronika Negeri Surabaya Flip Horizontal, Vertical Transformasi Gray (cont), Biner, Image Enhancement Politeknik Elektronika Negeri Surabaya
Application
Application
Materi Konversi RGB ke Gray Scale Konversi Gray Scale ke Biner Konversi Gray Scale ke m-Bit Pengaturan Brightness Pengaturan Kontras Gray-scale Histogram Distribusi Kumulatif Histogram Equalization
Konversi RGB ke Gray Scale Setiap pixel mempunyai nilai red (r), green (g) dan blue (b) dengan nilai masing-masing 0-255 Setiap pixel mempunyai nilai derajat keabuan x dengan nilai 0-255
Bitmap bmp3 = (Bitmap)pbox3.Image; Color pixelColor; pbox6.Image = new Bitmap(pbox6.Width, pbox6.Height); for (int y = 0; y < bmp3.Height; y++) { for (int x = 0; x < bmp3.Width; x++) pixelColor = bmp3.GetPixel(x, y); int red = pixelColor.R; int green = pixelColor.G; int blue = pixelColor.B; int rata = (int)(red + green + blue) / 3; bmp3.SetPixel(x, y, Color.FromArgb(rata, rata, rata)); } pbox6.SizeMode = PictureBoxSizeMode.StretchImage; pbox6.Image = bmp3;
Konversi Gray Scale Ke Biner Setiap pixel mempunyai nilai derajat keabuan x dengan nilai 0-255 Setiap pixel mempunyai nilai warna xbw dengan nilai 0 dan 1
Bitmap bmp4 = (Bitmap)pbox3.Image; Color pixelColor; for (int y = 0; y < bmp4.Height; y++) { for (int x = 0; x < bmp4.Width; x++) pixelColor = bmp4.GetPixel(x, y); int red = pixelColor.R; int green = pixelColor.G; int blue = pixelColor.B; int rata = (int)(red + green + blue) / 3; if (rata < 128) { rata = 0; } else { rata = 255; } bmp4.SetPixel(x, y, Color.FromArgb(rata, rata, rata)); } pbox7.SizeMode = PictureBoxSizeMode.StretchImage; pbox7.Image = bmp4;
Konversi Gray Scale Ke m-Bit Setiap pixel mempunyai nilai derajat keabuan x dengan nilai 0-255 Setiap pixel mempunyai nilai warna xth dengan nilai 0 sampai dengan 2m-1 Contoh : X=100, gray scale 4 bit (0-64) Xbaru = 64 x (100/64) = 64 x 1 = 64
Pengaturan Flip Horizontal Vertical
//Flip Horizontal Bitmap source = (Bitmap)pbox3.Image; Color pC; //pixelColor int size=source.Height; if (source.Width < source.Height) size = source.Width; Bitmap bmp1 = new Bitmap(size,size); for (int y = 0; y < size; y++) { for (int x = 0; x < size; x++) pC = source.GetPixel(size-1-x, y); bmp1.SetPixel(x, y, Color.FromArgb(pC.R, pC.G, pC.B)); } pbox4.SizeMode = PictureBoxSizeMode.StretchImage; pbox4.Image = bmp1;
//Flip Vertical Bitmap bmp2 = new Bitmap(size, size); for (int y = 0; y < size; y++) { for (int x = 0; x < size; x++) int a = size - y; pC = source.GetPixel(x, size-1-y); bmp2.SetPixel(x, y, Color.FromArgb(pC.R, pC.G, pC.B)); } pbox5.SizeMode = PictureBoxSizeMode.StretchImage; pbox5.Image = bmp2;
Pengaturan Brightness Proses pengaturan brightness adalah proses penambahan nilai derajat keabuan x dengan nilai perubahan brightness tbrightness 255 255 tbrightness bisa positif dan dan negatif
// fungsi Contrast Bitmap source = (Bitmap)pbox3.Image; Bitmap bmp1 = new Bitmap(source.Height,source.Width); bmp1 = source; Color pixelColor; int k = 30; for (int y = 0; y < source.Height; y++) { for (int x = 0; x < source.Width; x++) pixelColor = source.GetPixel(x, y); int red = pixelColor.R; int green = pixelColor.G; int blue = pixelColor.B; if ((red + k) <= 255) { red = red + k; } ; if ((green + k) <= 255) { green = green + k; }; if ((blue + k) <= 255) { blue = blue + k; } ; bmp1.SetPixel(x, y, Color.FromArgb(red,green,blue)); } pbox8.SizeMode = PictureBoxSizeMode.StretchImage; pbox8.Image = bmp1;
0 < tkontras < m , dengan m positif Pengaturan Contrast Proses pengaturan contrast adalah proses perkalian nilai derajat keabuan x dengan nilai perubahan contrast tcontrast 255 0 < tkontras < m , dengan m positif 255
Color pixelColor = source.GetPixel(x, y); int red = pixelColor.R; int green = pixelColor.G; int blue = pixelColor.B; Color pixelColor1 = source.GetPixel(x + 1, y); int red1 = pixelColor1.R; int green1 = pixelColor1.G; int blue1 = pixelColor1.B; int rataRed = (int)(red + red1) / 2; int rataGreen = (int)(green + green1) / 2; int rataBlue = (int)(blue + blue1) / 2; red = (int) K * (red1 - red) + rataRed; green = (int)K * (green1 - green) + rataGreen; blue = (int)K * (blue1 - blue) + rataBlue; if (red > 255) { red = 255; } if (green > 255) { green = 255; } if (blue > 255) { blue = 255; } if (red < 0) { red = 0; } if (green < 0) { green = 0; } if (blue < 0) { blue = 0; } bmp1.SetPixel(x, y, Color.FromArgb(red, green, blue));
Gray-Scale Histogram Histogram di dalam gambar gray-scale menyatakan distribusi dari derajat keabuan (terang/gelap) pada suatu gambar. Dari histogram ini dapat dilihat apakah gambar tersebut lebih banyak warna gelap atau lebih banyak warna terang Teknik histogram ini dapat dikembangkan untuk memperbaiki kualitas gambar (image enhancement) dengan apa yang dinamakan dengan Histogram Equalization, suatu teknik untuk meratakan distribusi terang/gelap sehingga gambar kelihatan lebih jelas.
Gray-Scale Histogram Gambar ini didominasi warna terang, karena grafik di sebelah kanan terlihat lebih banyak. Gambar ini didominasi warna gelap, karena grafik di sebelah kiri terlihat lebih banyak.
Distribusi Kumulatif Distribusi kumulatif C(x) adalah nilai total histogram dari tingkat keabuan=0 sampai dengan tingkat keabuan=x, dan didefinisikan dengan: Distribusi kumulatif ini dapat digunakan untuk menunjukkan perkembangan dari setiap step derajat keabuan. Pada distribusi kumulatif, gambar dikatakan baik bila mempunyai distribusi kumulatif yang pergerakannya hampir sama pada semua derajat keabuan.
Distribusi Kumulatif Perubahan yang tajam
Distribusi Kumulatif Gambar-gambar hasil photo mempunyai perubahan yang tidak terlalu tajam dan biasanya tidak lebih dari satu. Hal ini menunjukkan tingkat gradiasi yang halus pada gambar hasil photo. Gambar-gambar kartun mempunya banyak perubahan yang tajam, hal ini menunjukkan tingkat gradiasi pada gambar kartun rendah (kasar).
Histogram Equalization Histogram Equalization adalah suatu proses untuk meratakan histogram agar derajat keabuan dari yang paling rendah (0) sampai dengan yang paling tinggi (255) mempunyai kemunculan yang rata. Dengan histogram equalization hasil gambar yang memiliki histogram yang tidak merata atau distribusi kumulatif yang banyak loncatan gradiasinya akan menjadi gambar yang lebih jelas karena derajat keabuannya tidak dominan gelap atau dominan terang. Proses histogram equalization ini menggunakan distribusi kumulatif, karena dalam proses ini dilkakukan perataan gradien dari distribusi kumulatifnya.
Formulasi Histogram Equalization Histogram Equalization dari suatu distribusi kumulatif C adalah: Cw adalah nilai distribusi kumulatif pada derajat keabuan w t adalah nilai threshold derajat keabuan= 28 atau 256 nx dan ny adalah ukuran gambar.
Perhitungan Histogram Equalization Perhatikan histogram berikut: Distribusi Kumulatifnya 2 4 3 1 3 6 4 3 1 0 3 2 2 6 9 10 13 19 23 26 27 27 30 32
Perhitungan Histogram Equalization Distribusi Kumulatif: 2 6 9 10 13 19 23 26 27 27 30 32 w Cw w-baru 1 2 (2*12)/ 41 6 3 9 4 10 5 13 19 7 23 8 26 27 11 30 12 32
Histogram Equalization Pada Gambar
Histogram Equalization Pada Gambar
Histogram Equalization Pada Gambar
Aplikasi Histogram Equalization Buka project baru Pada form atur property ScaleMode=Pixel Tambahkan 2 pictureBox. Pada setiap pictureBox, atur property Appereance=Flat, Autoredraw=True dan ScaleMode=Pixel. Buat ukuran kedua pictureBox ini sama. Pada picture1, tambahkan gambar pada property picture Tambahkan 1 commandButton, isikan property Caption=Histogram Equalization. Atur tampilan seperti gambar di bawah ni.
Lingkup Pembahasan
I. Point Processing Cara paling mudah untuk melakukan peningkatan mutu pada domain spasial adalah dengan melakukan pemrosesan yang hanya melibatkan satu piksel saja (tidak menggunakan jendela ketetanggaan) Pengolahan menggunakan histogram juga termasuk dalam bagian point processing
Ia. Image Negative Mengubah nilai grey-level piksel citra input dengan: Gbaru = 255 - Glama Hasilnya seperti klise foto
Aplikasi Penginderaan Jarak Jauh (Sumber: Murni, 1997) Citra Optik Citra SAR (Sumber: Bakosurtanal RI)
Ib. Contrast Stretching Mengubah kontras dari suatu image dengan cara mengubah greylevel piksel-piksel pada citra menurut fungsi s = T(r) tertentu r1 ≤ r2, s1 ≤ s2 r1 = r2, s1 = s2 tidak ada perubahan r1 = r2, s1 = 0, s2 = 255 tresholding menjadi citra biner dengan ambang r1 255 (r2,s2) s T(r) (r1,s1) 255 r
Contoh Contrast Stretching
Contrast Stretching Fungsi lain yang baik digunakan adalah: fout = (fin – a) * b, -> (20-10)*6=60 a = min(fin) misal : a=10 b = 255 / (max(fin) – min(fin)) : b=255/(50-10)=255/40=6 Citra masukan yang grey level nya tidak penuh dari 0 – 255 (low constrast) diubah menjadi citra yang grey level nya berkisar dari 0 – 255 (high contrast)
Contrast Stretching Buatlah matrik citra ukuran 10x10 dengan nilai random gray scale 50-150 (optional) Dapatkan matrik citra hasil setelah dilakukan contras stretching sehingga gray level citra menjadi 0-255. Tampilkan matrik citra asal dan matrik citra hasil contras stretching. Dikumpulkan senin mg depan.
Ic. Histogram Equalization Histogram: diagram yang menunjukkan jumlah kemunculan grey level (0-255) pada suatu citra Histogram processing: Gambar gelap: histogram cenderung ke sebelah kiri Gambar terang: histogram cenderung ke sebelah kanan Gambar low contrast: histogram mengumpul di suatu tempat Gambar high contrast: histogram merata di semua tempat Histogram processing: mengubah bentuk histogram agar pemetaan gray level pada citra juga berubah
Ic. Histogram Equalization in all grey level and all area (1) Ide: mengubah pemetaan greylevel agar sebarannya (kontrasnya) lebih menyebar pada kisaran 0-255 Sifat: Grey level yang sering muncul lebih dijarangkan jaraknya dengan grey level sebelumnya Grey level yang jarang muncul bisa lebih dirapatkan jaraknya dengan grey level sebelumnya Histogram baru pasti mencapai nilai maksimal keabuan (contoh: 255)
Ic. Histogram Equalization in all grey level and all area (2) mengubah pemetaan grey level pada citra, dengan rumus:
Ic. Histogram Equalization in all grey level and all area (3) Citra awal: 3 5 5 5 4 5 4 5 4 4 5 3 4 4 4 4 5 6 6 3 Citra Akhir: 1 9 9 9 5 9 5 9 5 5 9 1 5 5 5 5 9 10 10 1 Contoh : citra dengan derajat keabuan hanya berkisar 0-10 1 2 3 4 5 6 7 8 9 10 11 18 20 (0*10)/25 (3*10)/25 (11*10)/25 (18*10)/25 (20*10)/25 0.15 0.40 0.35 0.1 0.55 0.90 1.5 5.5 Derajat Keabuan Kemunculan Probabilitas Kemunculan Sk SK * 10 Derajat keabuan baru
Ic. Histogram Equalization specific grey level (hist. specification) Histogram equalization tidak dilakukan pada seluruh bagian dari histrogram tapi hanya pada bagian tertentu saja
Ic. Histogram Equalization specific area (local enhancement) Histogram equalization hanya dilakukan pada bagian tertentu dari citra
References Achmad Basuki, Nana Ramadijanti, “Modul Teori Citra PENS” Image Application from other sites