Coba Pengolahan Citra

Sudah terkenal di kampus kami tercinta tentang mata kuliah PCD, alias Pengantar C dan D, oh maaf, Pengolahan Citra Digital, hehe…. Corel, Photoshop, bahkan MsPaint sekalipun itu tidak lepas dari yang namanya Pengolahan Citra Digital. Hanya saja banyak orang yang meremahkan beberapa alat pengolahan citra seperti MsPaint, but you know what? Basicly, itu lumayan buat bingung walaupun itu hanya MsPaint, atau silahkan tanya mahasiswa yang pernah mengambil matakuliah PCD. Agar kita semua menghargai perjuangan orang-orang yang telah membuat aplikasi-aplikasi pengolahan citra tersebut, mari kita membuat aplikasi sederhana pengolahan citra. Sebagai contoh, saya akan membuat aplikasi untuk mengubah suatu citra atau gambar menjadi Grayscale dengan bahasa C#. Catatan saja, di sini saya hanya akan menunjukan pemrosesnya saja, jadi gambar yang digunakan pun statis (itu-itu saja), diganti-ganti gambarnya hanya bisa lewat codenya saja.

Apa yang dibutuhkan?

– Komputer/Laptop

– Visual Studio 2010

– ┬áSecangkir kopi ­čśÇ

Setelah semuanya siap, ikuti langkah berikut :

1. Buka visual Studio

2. Buat project baru seperti gambar di bawah ini, beri nama bebas, terserah saja misal saya beri nama “ImageToGrayscale”.

Click “OK” lalu akan muncul Form1.cs

3. Sekarang, perhatikan jendela tersebut :

Sebelah kiri ada yang namanya Toolbox. Drag Button di Toolbox ke tengah itu sehingga seperti keadaan di atas. Setelah berada di tengah, lihat ke kanan bawah ada properties. Pada bagian properties cari “Text” lalu isi di sebelah kanannya dengan nama “grayscale”. Yang terpenting, ingatlah nama Object Button tersebut. Nama object tersebut berada di bawah Properties, ada teks yang dicetak tebal.

Lalu drag and drop PictureBox di sebelah kiri dan kanan dari button yang tadi. Untuk PictureBox sebelah kiri saya beri nama pictureBox1, dan kanan pictureBox2.

4. Pilih pictureBox1,  di bagian properties cari bagian SizeMode, ubah dari Normal ke Stretch Image. Tujuannya agar gambar yang ditampilkan disesuaikan dengan ukuran pictureBox1. Lakukan hal yang sama terhadap pictureBox2.

5. Hanya saja pada pictureBox1 kita akan memilih gambar yang akan diuji coba. Cari Image di bagian properties. Di sana masih di set None. Lalu Click (…;) di sebelahnya maka akan muncul jendela baru :

Pilih Project resource file, lalu Click import dan pilih gambar yang kalian suka, misal saya import “walpaper-1348835” lalu click “OK”. Maka gambar terpilih tersebut akan mengisi pictureBox1 secara penuh.

6. Sekarang click lagi button bertuliskan grayscale , lalu di bawah properties ada sesuatu bergambar halilintar, itu namanya “Event”. Pada bagian “Click” isi dengan “button_Click” lalu tekan “Enter”. Maksudnya, ketika ada event klik terjadi pada button tersebut, maka method “button_Click” akan dijalankan. Maka akan muncul code berikut :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ImageToGrayscale
{
      public partial class Form1 : Form
      {
           public Form1()
           {
            InitializeComponent();
           }

           private void button_Click(object sender, EventArgs e)
           {

           }
     }
}

6. Pada bagian private void button_Click(object sender, EventArgs e), tambahkan code sehingga menjadi seperti berikut, perhatikan tiap komentarnya :

private void button_Click(object sender, EventArgs e)
        {
            //Image yang ada di picturePox1 diduplikasi dan ditampung di image
            Image image = (Image)pictureBox1.Image.Clone();

            //image tadi masih belum jelas apa tipenya, maka dibuat dulu ke dalam bitmap
            Bitmap bitmap = new Bitmap(image);

            //Mendeteksi warna pixel per pixel
            for (int i = 0; i < image.Height; i++)
            {
                for (int j = 0; j < image.Width; j++)
                {
                    //setiap warna per pixel ditampung  sementara di color
                    Color color = bitmap.GetPixel(j, i);

                    //secara prinsip dasar, gradasi warna putih merupakan
                    //campuran R (Red), G (Blue), B (Blue) secara rata.
                    //Untuk coba-coba silahkan gunakan Photoshop atau Corel
                    //bagaimana susunan RGB pada warna putih~abu-abu~hitam.
                    //Maka, untuk pendekatan tiap komponen RGB dijumlahkan
                    //lalu dibagi 3.
                    int c = (color.R + color.G + color.B) / 3;

                    //Color.FromArgb(R, G, B) fungsinya untuk membentuk warna baru.
                    //ingat, 1 warna tersusun oleh RGB
                    //di sini setiap atribut R,G, dan B di assign oleh c, sehingga
                    //nilainya sama R, G, B, sehingga jadi abu-abu semua.
                    bitmap.SetPixel(j, i, Color.FromArgb(c, c, c));

                }
            }

            //bitmap yang telah diolah ditampilkan di pictreBox2
            pictureBox2.Image = bitmap;
        }

7. Sekarang jalankan aplikasinya atau lebih cepat tekan F5. Lalu akan muncul aplikasinya dan click button grayscale tersebut. Tunggu sebentar karena lama proses bergantung dari ukuran bitmap tersebut misal punya saya 1000px x 1000px, maka program harus memproses 1 juta pixel. Berikut hasil aplikasi saya yang dijalankan :

 

Bagaimana? Mudah bukan? Congratulation  :2thumbup

Ini baru 1 fungsi, bayangkan berapa fungsi yang ada di Corel atau Photoshop? Rotate? Sephia? Emboss? dan masih banyak lagi. Maka, apakah pantas aplikasi-aplikasi tersebut bernilai mahal? silahkan anda menilai sendiri.

Woke, semoga bermanfaat untuk semua :ngacir2