EmguCV Pengolahan Citra Standar

EmguCV telah memiliki fungsi-fungsi yang dapat menangani pengolahan citra dari bawaan OpenCV. Mulai dari pengolahan citra standar hingga yang rumit. Kali ini saya menulis tentang pengolahan citra yang standar. Pastikan anda telah mengetahui cara membaca file foto menggunakan EmguCV. Namun jika belum mengetahui caranya, silahkan baca tulisannya di sini. Potongan kode tinggal anda ganti dan sisipkan pada tanda ( ... ).
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Supported image files|*.bmp;*.png;*.jpg;*.jpeg";
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    Bitmap image = new Bitmap(ofd.FileName);
    ...

    image.Dispose();
}


Gambar Asli

Grayscale
Grayscale adalah bentuk pengolahan citra yang mengubah semua komposisi 3 warna, yaitu RGB menjadi nilai yang sama. Rumus mencari nilai grayscale adalah :
Nilai Grayscale = (Nilai R + Nilai G + Nilai B) / 3

Berikut adalah kode untuk melakukan grayscale.
Konversi objek foto menjadi gambar grayscale.
Image<Gray, byte> grayscale = image.Convert<Gray, byte>();

Menampilkan hasil grayscale ke ImageBox.

imageBox1.Image = grayscale;

Menghancurkan objek grayscale.

grayscale.Dispose();


Gambar Hasil Grayscale


Binary Threshold
Binary threshold atau disebut gambar biner adalah mengubah warna piksel menjadi 2 warna, yaitu hitam dan putih. Disebut biner karena hanya ada 2 warna piksel. Warna hitam merupakan 0 dan warna putih merupakan 1. Warna hitam semua komponen piksel bernilai 0, dan warna putih semua komponen piksel bernilai 255. Untuk mengubah sebuah gambar menjadi biner, dibutuhkan nilai ambang batas (threshold). Untuk lanjut ke proses binerisasi, gambar harus di grayscale terlebih dahulu. Berikut rumus biner yang dapat digunakan.
R, G, B > T | 255 or 0
Dengan T adalah nilai threshold. Nilai threshold akan mempengaruhi hasil binerisasi gambar.

Berikut adalah kode untuk melakukan binary threshold.
Konversi objek foto menjadi gambar grayscale.
Image<Gray, byte> grayscale = image.Convert<Gray, byte>();

Binerisasi dengan threshold sebesar 128.

Image<Gray, byte> binary = grayscale.ThresholdBinary(new Gray(128), new Gray(255));

Menampilkan hasil biner ke ImageBox.

imageBox1.Image = binary;

Menghancurkan objek-objek.
grayscale.Dispose();
binary.Dispose();


Gambar Hasil Binary Threshold 128
Binary Threshold Invert
Binary threshold invert adalah kebalikan dari binary threshold. Rumus yang digunakan tinggal dibalik menjadi :
R, G, B > T | 0 or 255
atau
R, G, B < T | 255 or 0
Dengan T adalah nilai threshold. Nilai threshold akan mempengaruhi hasil binerisasi gambar.

Kode yang digunakan juga sama persis, cuma berbeda pada kode di bawah ini.
Image<Gray, byte> binary = grayscale.ThresholdBinaryInv(new Gray(128), new Gray(255));

Gambar Hasil Binary Threshold Invert 128


Ahmad Jawahir

Related Posts:

Tidak ada komentar:

Posting Komentar