Kamis, 28 April 2011

Konversi citra warna menjadi keabuan (grayscale) di C#

02 Apr
Melanjutkan posting sebelumnya yang berjudul konversi citra warna menjadi keabuan (grayscale), sekarang saatnya implementasi langsung membuat programnya menggunakan visual c#. Sebelumnya saya ingin memberikan gambaran bagaimana proses konversi grayscale melalui perhitungan manual. Misalkan kita memiliki citra warna berukuran 8×8 piksel dengan nilai-nilai RGBnya sebagai berikut:

Untuk konversi warna menjadi grayscale, digunakan perumusan seperti pada posting sebelumnya. Misal untuk piksel di koordinat (0,0), perhitungannya adalah:

Perhitungan tersebut dilakukan untuk semua koordinat, sehingga matriks citra hasil konversi menjadi seperti berikut:

Nah, kalau sudah tau konsepnya dan paham perhitungan manualnya, ini dia source code untuk konversi citra warna menjadi grayscale. (saya menggunakan dua class dasar seperti yang sudah saya tuliskan pada posting Dua Class Dasar untuk Pemrosesan Citra Pada C#).
01public void toGray()
02            {
03                byte warnaGray;
04                for (int i = 0; i < tinggi; i++)
05                {
06                    for (int j = 0; j < lebar; j++)
07                    {
08                        warnaGray = (byte)((Pixel[i, j].Merah + Pixel[i, j].Biru + Pixel[i, j].Hijau) / 3);
09                        Pixel[i, j].Merah = Pixel[i, j].Biru = Pixel[i, j].Hijau = warnaGray;
10                    }
11                }
12                ubahCitra();
13            }
Hasil dari source code tersebut dapat dilihat pada gambar di bawah ini…
Jika ingin contoh projectnya secara keseluruhan, silakan tinggalkan email Anda.

Tidak ada komentar:

Posting Komentar