PENGOLAHAN CITRA
Oleh:
Sudirman
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK BUMIGORA MATARAM
2009
DAFTAR ISI
BAB I KONSEP DASAR PENGOLAHAN CITRA 3
1.1. Konsep Dasar Pengolahan Citra 5
1.2. Pengolahan Citra Digital 5
1.2.1. Macam-macam operasi pengolahan citra 7
1.2.2. Dasar-dasar pengolahan citra digital 8
1.2.2.1. Macam-macam cara pengambilan Citra Digital 11
1.2.2.2. Format dan Model Citra Digital 12
1.2.2.2.1. Model Citra Digital 12
1.2.2.2.2. Resolusi Citra 13
1.2.2.2.3. Kedalaman Citra 13
1.2.2.2.4. Format File Citra 14
1.2.2.2.5. Citra Biner 14
1.2.2.2.6. Citra Warna 15
1.2.2.2.7. Citra Warna Berindeks 15
1.2.2.2.8. Citra Skala Keabuan 15
1.2.3. Mengakses Nilai Pixel 16
1.2.3.1. Mengambil Nilai Pixel pada Citra GrayScale 16
1.2.3.2. Mengubah Nilai Pixel pada Citra GrayScale 17
1.2.3.3. Mengambil Nilai Pixel pada Citra Color 19
1.2.3.4 Mengubah Nilai Pixel pada Citra Color 21
1.3. Aplikasi Pengolahan Citra 23
1.3.1. Contoh Aplikasi Pengolahan Citra digital 23
1.4.. Menggunakan peralatan pengolahan citra 26
1.4.1. Menampilkan Citra pada Form Delphi 27
1.4.2. Sub Property Picture 31
1.4.3. Mengubah Ukuran Tampilan Citra 32
1.5. Rangkuman 32
1.6. Latihan 33
1.7. Test Formatif 33
1.8. Daftar Pustaka 34
Tinjauan Mata Kuliah
Pengolahan citra adalah bidang yang sifatnya multidisiplin ilmu, terdiri dari berbagai aspek , diantaranya : fisika, elektronika, matematika seni, fotografi dan teknologi komputer. Pengolahan citra berhubungan erat dengan disiplin ilmu yang lain. Jika sebuah disiplin ilmu dinyatakan dalam bentuk proses input menjadi output, maka pengolahan citra memiliki input berupa citra dan output berupa citra juga. Materi yang dipelajari dalam mata kuliah pengolahan citra antara lain adalah: memperbaiki kwalitas gambar, dilihat dari aspek radiometrik (peningkatan kontras, transformasi warna, restorasi citra) dan dari aspek geometrik (rotasi, translasi, skala, transformasi geometrik); melakukan pemilihan citra ciri (feature images) yang optimal untuk tujuan analisis; melakukan proses penarikan informasi atau deskripsi obyek atau pengenalan obyek yang terkandung pada citra; serta melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data. Standart Kompetensi dari mata kuliah pengolahan citra ini adalah: Mahasiswa S-1 Teknik Informatika yang mengikuti mata kuliah ini diharapkan dapat menggunakan perangkat lunak bantu (tools) untuk pengolahan citra serta mampu mengimplementasikan algoritma pengolahan citra dalam bentuk aplikasi perangkat lunak komputer menggunakan teknik dasar pengolahan citra.
Petunjuk Cara Pembelajaran
Buku ajar ini disusun dalam Tujuh Bab disesuaikan dengan silabus mata kuliah dengan susunan bab sebagai berikut:
BAB I Konsep Dasar Pengolahan Citra
BAB II Representasi Citra Digital
BAB III Konvolusi Dan Transformasi Citra
BAB IV Peningkatan Mutu Citra
BAB V Segmentasi Citra
BAB VI Analisis Citra
BAB VII Kompresi Dan Pengkodean Citra
Adapun struktur hubungan antar bab sebagai berikut:
Pada setiap Bab strutur isinya dimulai dari uraian umum, kemudian sub-sub Bab disesuaikan dengan Sub Pokok Bahasan dalam Silabus/SAP, kemudian di bagian akhir uraian Bab terdapat Rangkuman yang merupakan ringkasan inti materi per bab, kemudian ada Latihan yang meliputi semua indikator untuk mempertajam pemahaman mahasiswa, Kemudian ada Test formatif yang soalnya mewakili semua indikator pencapaian ketuntasan belajar mahasiswa, dan paling akhir terdapat daftar pustaka yang berisi rujukan materi pada Tiap-tiap Bab.
SILABUS
Pertemuan 1:
Kompetensi Dasar:
Dapat memproses citra digital menggunakan perangkat lunak aplikasi pengolahan citra
Materi Pokok:
Konsep Dasar Pengolahan Citra
Indikator:
1. Memahami konsep dasar citra digital
2. Memahami pengertian cara pengolahan citra digital
3. Mengetahui aplikasi pengolahan citra
4. Dapat menggunakan peralatan yang digunakan untuk mengolah citra
BAB I
KONSEP DASAR PENGOLAHAN CITRA
1.1. Konsep Dasar Citra Digital
Menurut Kamus Webster, “citra merupakan Suatu representasi, kemiripan, atau imitasi dari suatu obyek atau benda”. Citra dapat dikelompokkkan menjadi citra tampak (misalnya,: Foto diri atau lukisan dinding) dan citra tidak tampak (misalnya; data gambar dalam file (citra digital) dan citra yang dipresentasikan berupa fungsi matematis.
Diantara jenis citra tersebut hanya citra digital yang dapat diolah menggunakan komputer. Citra yang lain jika ingin diolah menggunakan komputer harus diubah terlebih dahulu menjadi citra digital.
Citra merupakan kumpulan dari titik-titik dengan gradasi warna tertentu yang membentuk pola tertentu, di komputer titik-titik tersebut berbentuk kotak bujur sangkar dan disebut pixel (picture element) dan disebut juga dot. Titik-titik tersebut terletak pada bidang dua dimensi yang dapat dinyatakan berupa f(x,y) dengan x dan y terletak pada sistem koordinat spasial sedangkan nilai f pada koordinat x dan y tersebut sebanding dengan tingkat kecerahan. Ilustrasi sebuah citra terdapat pada gambar 1.1.
Citra yang tampak Citra yang terdapat di memori
Gambar 1.1. Ilustrasi citra dan data yang disimpan di memori
Pada gambar 1.1 warna hitam diilustrasikan dengan angka 0, biru angka 1 dan kuning angka 3.
1.2. Pengolahan Citra Digital
Pada awalnya pengolahan citra dilakukan untuk memperbaiki kualitas citra,namun seiring dengan berkembangnya ilmu komputer yang memungkinkan manusia dapat mengambil informasi dari suatu citra maka image processing tidak dapat dilepaskan dengan bidang computer vision.
pengolahan citra mempunyai dua tujuan utama, yaitu:
1. Tujuan yang pertama adalah Memperbaiki kualitas citra, citra yang dihasilkan dapat menampilkan informasi secara jelas, dimana manusia dapat melihat informasi yang diinginkan dengan menginterprestasikan citra yang ada.
2. Tujuan yang kedua adalah mengambil informasi ciri yang penting (Mengekstraksi ciri) pada suatu citra dan hasilnya dapat berupa informasi ciri citra berupa sederetan angka (Secara Numerik) dan data numerik tersebut memiliki besaran-besaran yang dapat dibedakan sehingga dapat diterjemahkan oleh sebuah komputer untuk melakukan sebuah keputusan yang Sangat penting.
1.2.1. Macam-macam Operasi pengolahan citra
Pada dasarnya pengolahan citra dilakukan dengan cara mengubah-ubah nilai setiap titik (píxel) pada citra tersebut, macam-macam cara mengubah nilai píxel dapat dikelompokkan sebagi berikut :
o Operasi titik, Pada operasi ini setiap titik (píxel) di ubah-ubah tanpa melibatkan titik yang lain pada citra tersebut.
o Operasi global, Pada operasi ini terlebih dahulu diambil karakteristik global dari suatu citra kemudian dengan menggunakan karakter global sebuah citra maka proses pengubahan titik yang lain dilakukan.
o Operasi berbasis bingkai, Pada operasi ini proses pengubahan nilai citra memerlukan citra yang lain, dengan kata lain citra 1 dioperasikan dengan citra 2 menghasilkan citra 3.
o Operasi geometri, Pada operasi ini orientasi citra ( bentuk, ukuran, kemirigan ) diubah seara geometris.
o Opersi banyak titik bertetangga, Pada operasi ini sebuah pixel/titik diubah nilainya dengan melibatkan nilai tetangganya.
o Operasi morfologi, Pada operasi ini sebuah pixel/titik diubah dengan melihat bagian dalam yang dimiliki sebuah citra yang mendapat perhatian khusus.
Pengolahan citra dari tahun ke tahun berikutnya telah mengalami berbagai perkembangan dan dalam banyak penerapan pengolahan citra ini digunaka sebagai pengganti mata yang diletakkan pada komputer. Untuk mengambil sebuah citra komputer memerlukan sebuah peralatan yang disebut image capture.
Peralatan image capture diantaranya adalah kamera dan scanner. Data citra yang telah didapat dari camera dan scanner selanjutnya diproses oleh komputer dengan menggunakan langkah-langkah tertentu (algoritma) untuk menghasilkan sebuah citra yang lain atau sebuah keputusan.
Dengan adanya pemrosesan terhadap suatu citra dalam perkembangan selanjutnya telah memunculkan beberapa cabang dalam dunia komputasi seperti pengenalan pola (pattern recognition), pengenalan identifikasi manusia berdasarkan ciri-ciri biologis yang tampak pada badan manusia (biometric), mendapatkan kembali citra atau video dengan informasi tertentu content (based image and video retrieval) dan lain-lain.
Biometric merupakan Salah satu bidang pengolahan citra yang saat ini banyak dikembangkan orang yaitu bidang yang mempelajari ciri-ciri unik yang dimiliki secara fisik/tubuh setiap orang adalah misalnya goresan mata, bentuk wajah, warna wajah, ekspresi wajah, pola struktur DNA pada darah,sidik jari dan lain-lain.
Sebagai sebuah contoh adalah identifikasi sidik jari, setiap manusia memiliki ciri yang spesifik yang terdapat pada sidik jarinya, sidik jari ini cenderung berbeda antara satu orang dengan orang yang lain (kemungkinan sama adalah satu banding beberapa milyar) sehingga dapat digunakan untuk membedakan antara satu orang dengan yang lainnya.
Untuk melakukan identifikasi sidik jari diperlukan pengolahan citra untuk melakukan capture (penangkapan citra sidik jari), sampai pada ekstraksi ciri yaitu mengekstrak besaran-besaran numerik yang dapat dijadikan suatu ciri sidik jari seperti core (pusat sidik jari) dan minusi (percabangan yang ada pada sidik jari), yang pada akhirnya dilakukan proses pembelajaran agar komputer dapat secara tepat mengidentifikasikan sidik jari.
1.2.2. Dasar-dasar Pengolahan Citra Digital
Hal penting pada Pengolahan citra digital antara lain:
a. Cara-cara pengambilan citra
b. Format dan Model citra digital
c. Sampling dan kuantisasi
d. Threshold
e. Histogram
f. Proses filtering, perbaikan citra sampai pada pengolahan citra digital yang lebih lanjut seperti segmentasi, image clustering dan ekstraksi ciri.
Bebeapa perbedaan mendasar antara citra digital dan citra analog, terlihat gambar 1.2. yaitu :
Gambar 1.2. Contoh perbedaan citra analog dan citra digital
Citra digital adalah representatif dari citra yang diambil oleh mesin dengan bentuk pendekatan berdasarkan sampling dan kuantisasi.
Sampling merupakan besarnya kotak-kotak yang disusun dalam baris dan kolom atau dengan kata lain sampling pada citra menyatakan besar kecilnya ukuran pixel (titik) pada citra.
kuantisasi adalah besarnya nilai tingkat kecerahan yang dinyatakan dalam nilai tingkat keabuan (gray scale) kuantisasi ini pada citra menyatakan jumlah warna pada masing-masing píxel,.
Gambar 1.3 adalah diagram pemrosesan citra digital, pada blok pengambilan bisa dilakukan dengan camera, webcam atau scanner, sedangkan pada Pengolahan citra gambar yang didapat diproses dengan teknik-teknik tertentu dan pada hasil akan diperoleh citra yang lain yang memiliki kualitas lain.
Gambar 1.3. Diagram pengolahan citra
1.2.2.1. Macam-Macam Cara Pengambilan Citra Digital
Beberapa Cara pengambilan digital dilakukan antara lain dengan menggunakan kamera digital (bisa juga web-cam) atau menggunakan scanner (bisa scanner umum, finger-print scanner atau bar-code scanner. Hasil dari citra yang diambil menggunakan kamera atau scanner berupa citra raster (atau citra dengan model matrik).
Gambar 1.4. Kamera
Cara yang lain untuk memperoleh citra yaitu dengan menggunakan cara grafika komputer yang memiliki hasil berupa citra raster atau bisa berupa citra vector caranya adalah dengan membentuk obyek citra komputer sesuai dengan cara mengambil citra hal ini banyak digunakan untuk keperluan entertainment seperti pembuatan animasi atau untuk keperluan GIS (Geographics Information System).
Cara pengambilan gambar akan membedakan proses citra yang akan digunakan di dalamnya. Misalkan scanner dan camera akan menghasilkan citra dalam format gambar tunggal, camera video dan webcam akan menghasilkan citra dalam format video. Demikian pula dengan resolusi dan format warna yang juga akan akan berbeda. Berikut ini beberapa contoh citra selain gambar atau photo yang sering dilihat baik dengan scanner atau camera, yang dibedakan berdasarkan cara pengambilan sinyalnya.
A. X-Ray Imaging, citra ini banyak ditemui untuk keperluan medis, rangkaian elektronik dan astronomi
Gambar 1.5. X-Ray Imaging
B. Gamma Ray Imaging, citra ini biasanya digunakan untuk citra-citra nuklir dan proses nuklir, juga digunakan untuk keperluan astronomi.
Gambar 1.6. Gamma Ray Imaging
C. Image Infrared, citra ini banyak ditemui untuk keperluan farmasi, mikrobiotik, dan mrico material.
Gambar 1.7. Image Infrared
D. Image Ultraviolet, citra ini banyak ditemui untuk keperluan citra biologi, microscopy, lithograpy, laser dan astronomi
Gambar 1.8. Image Ultraviolet
1.2.2.2. Format dan Model Citra Digital
Citra digital memiliki beberapa karakteristik,diantaranya ukuran citra, resolusi, dan format lainnya. Ukuran citra dapat dinyatakan dalam satuan panjang, yang mana harus ada hubungan antara ukuran titik penyusun citra dengan satuan panjang. Satuan yang biasanya digunakan adalah dpi (dot per inch).
Citra digital adalah citra yang diambil berdasarkan sampling dan kuantisasi tertentu sehingga citra digital ini terbentuk dari piksel-piksel yang besarnya tergantung pada besar kecilnya sampling dan nilainya (besarnya derajat keabuan) tergantung pada kuantisasi.
Format citra digital ada berbagai macam., karena sebenarnya citra merepresentasikan informasi tertentu, sedangkan informasi tersebut dapat dinyatakan secara bervariasi, maka citra yang mewakilinya dapat muncul dalam berbagai format.
Citra yang mempresentasikan informasi yang bersifat biner untuk membedakan 2 keadaan tentu tidak sama dengan citra berinformasi yang lebih kompleks sehingga memerlukan lebih banyak keadaan yang mewakilinya. Pada citra digital semua informasi tadi disimpan dalam bentuk angka, sedangkan penampilan angka tersebut biasanya dikaitkan dengan warna.
Citra digital tersusun atas titik-titik yang biasanya berbentuk persegi panjang atau bujursangkar (pada beberapa sistem pencitraan, piksel-piksel penyusun citra ada pula yang berbentuk segi enam) yang secara beraturan membentuk baris-baris dan kolom-kolom. Setiap titik memiliki koordinat sesuai dengan posisinya dalam citra. Koordinat ini biasanya dinyatakan dalam bilangan bulat positif yang dimulai dari 0 atau 1 tergantung pada system yang digunakan..
1.2.2.2.1 Model Citra Digital
Berdasarkan pengertian tersebut model citra digital dinyatakan dalam bentuk matrik yang nilainya berupa nilai derajat keabuan seperti terlihat pada citra 1.8. berikut. Model ini menyatakan model dari citra gray-scale yaitu citra yang terdiri dari derajat keabuan tertentu. Dengan kata lain dapat dinyatakan bahwa citra digital adalah citra yang didefinisikan sebagai fungsi f(x,y) dimana x menyatakan nomor baris, y menyatakan nilai kolom, dan f menyatakan nilai derajat keabuan dari citra. Sehingga (x,y) adalah posisi dari piksel dan f adalah nilai derajat keabuan pada titik (x,y) seperti terlihat pada gambar 1.9.
Representasi model data di atas adalah representasi dari citra gray-scale (menggunakan derajat keabuan). Untuk citra berwarna, maka digunakan model RGB (Red-Green-Blue) dimana satu citra berwarna dinyatakan sebagai 3 buah matrik gray-scale yang berupa matrik untuk Red (R-layer), matrik untuk Green (G-layer) dan matrik untuk Blue (B-layer).
Citra digital harus mempunyai format tertentu yang sesuai sehingga dapat mempresentasikan obyek pencitraan dalam bentuk kombinasi data biner. Format citra digital berhubungan erat dengan warna, dimana yang banyak dipakai adalah citra biner, warna , warna berindeks dan skala keabuan.
Gambar 1.9. Citra sebagai matrik
Gambar 1.10.Model citra pada koordinat f(x,y)
1.2.2.2.2. Resolusi Citra
Resolusi adalah jumlah titik atau jumlah pixel dalam sebuah gambar, pada gambar 1.1. citra memiliki jumlah baris 5 dan jumlah kolom 5 sehingga berjumlah 25 pixel, citra ini disebut memiliki resolusi 25 pixel atau berupa pasangan angka 5x5 pixel.
1.2.2.2.3. Kedalaman Citra
Kedaaman warna , Bit Depth , pixel depth atau color depth dinyatakan dalam bit. contoh untuk jumlah warna 16 disebut memiliki kedalaman 4 bit atau 24 = 16, untuk gambar dengan 256 warna disebut memiliki kedalaman 8 bit atau 28= 256.
1.2.2.2.4. Format File Citra
Format file citra adalah bagaimana citra itu direpresentasikan dalam sebuah file kondisinya bisa dalam keadaan terkompres atau pada posisi terenkripsi. Antara satu format dengan format yang lain memiliki kelebihan dan kelemahan. Setiap format file dapat di bedakan dari extensi filenya yaitu diakhiri titik dengan tiga huruf tambahan. Macam-macamnya :
• Format file Bitmap/bmp adalah standar file bitmap / raster biasanya mempunyai ukuran file yang relatif besar tidak terkompres dan tidak mendukung gambar transparansi maupun animasi.
• Format file GIF (Graphics Interchange Format) menggunakan maksimal 8 bit warna (28 = 256 warna) gambar ini menggunakan kompresi dengan LZW compression yang merupakan kompresi loseless yang berarti tidak ada data yang dibuang. Format ini juga mendukung gambar transparansi dan animasi.
• Format file JPEG/JPG (Joint Photographic Experts Group) menggunakan 24 bit warna (224 = 16 juta warna) dan melakukan kompresi dengan cara membuang data yang dianggap tidak penting pada gambar (bersifat lossy compression). Semakin kecil file yang diinginkan semakin banyak data yang akan dibuang sehingga kualitasnya akan semakin menurun. Format ini tidak mendukung transparansi dan animasi.
• Format file PNG-8 terdiri 8 bit warna, mempunyai hasil kompresi yang lebih kecil dari format GIF.
• Format file PNG-24 menggunakan 24 bit warna, mempunyai ukuran yang lebih besar dan warna yang lebih banyak dari pada PNG-8.
• Format file PDF (Portable Document Format) digunakan untuk keperluan dokumen lintas sistem dan lintas program aplikasi dan mempunya ukuran file relatif kecil.
1.2.2.2.5. Citra Biner
Pada citra ini, setiap titik bernilai 0 atau 1, yang masing-masing mempresentasikan warna tertentu. Setiap titik pada citra hanya membutuhkan 1 bit, sehingga setiap byte dapat menampung informasi 8 titik.
1.2.2.2.6. Citra warna (True Color)
Pada citra ini setiap titik memiliki warna yang spesifik yang merupakan kombinasi dari tiga warna dasar yaitu merah, hijau dan biru, yang mana sering disebut sebagai citra RGB (red-green-blue). Untuk citra 32 bit setiap warna dasar mempunyai intensitas sendiri dengan intensitas maksimum 255 (8bit) yaitu RGB total 24 bit ditambah alfa 8 bit.
Jumlah kombinasi warna yang mungkin untuk format ini adalah lebih dari 16 juta warna, sehingga dinamakan citra true color, contoh citra berwarna terdapat pada gambar berikut.
Gambar 1.11. Tiga layer layer RGB pada citra berwarna
R-layer adalah matrik yang menyatakan derajat kecerahan untuk warna merah (misalkan untuk skala keabuan 0-255, maka nilai 0 menyatakan gelap (hitam) dan 255 menyatakan warna merah. G-layer adalah matrik yang menyatakan derajat kecerahan untuk warna hijau, dan B-layer adalah matrik yang menyatakan derajat kecerahan untuk warna biru.
Citra pada gambar menyatakan model RGB dari citra berwarna yang dipisah menjadi R-layer, G-layer dan B-layer. Model matrik pada citra digital memungkinkan dilakukannya operasional-operasional matrik, seperti aritmatika matrik (seperti penjumlahan, pengurangan dan perkalian) atau proses seperti invers dan tranpose. Hal inilah yang menjadi dasar dari pengolahan citra. Pada bab-bab berikutnya proses pengolahan matrik ini menjadi acuan dalam mengolah citra.
1.2.2.2.7. Citra warna berindeks
Format citra warna berindeks disedikan untuk kasus dimana jumlah warna yang ada dalam suatu citra terkadangsangat terbatas (dibawah 16 juta kemungkinan warna yang ada), karena banyaknya warna dalam sebuah citra tidak mungkin melebihi banyaknya titik dalam citra itu sendiri. Informasi setiap titik merupakan indeks suatu tabel yang berisi informasi warna yang tersedia yang disebut palet warna.
Palet warna merupakan bagian dari citra warna berindeks, sehingga saat menyimpannya dalam file, informasi palet ini harus disertakan. Jumlah bit yang dibutuhkan oleh setiap titik pada citra bergantung pada jumlah warna ya g ada pada palet warna.
Dengan menggunakan palet warna kita dapat memanipulasi warna dengan cepat tanpa mengubah informasi pada setiap titik dalam citra. Selain itu besarnya data yang dibutuhkan untuk menyimpan citra ini lebih kecil dibanding citra warna true color.
1.2.2.2.8. Citra Skala Keabuan
Format ini disebut skala keabuan karena warna yang umum dipakai adalah hitam sebagai warna minimal dan putih sebagai warna maksimal, sehingga warna antaranya adalah abu-abu. Namun dalam prakteknya warna yang dipakai tidak terbatas pada abu-abu, tergantung intensitas warnanya, sehingga beberapa buku menyebut format citra ini sebagai citra intensitas.
1.2.3. Mengakses Nilai Pixel
Pada bagian ini akan dijelas bagaimana cara mengakses nilai pixel pada koordinat f(x,y) untuk gambar grayscale. Untuk mengakses nilai pixel diperlukan dua langkah yang pertama ambil data satu baris tertentu pada citra dan yang kedua ambil data kolom pada data baris yang sudah diambil.
1.2.3.1. Mengambil Nilai Pixel pada Citra GrayScale
Untuk mengambil nilai pixel citra grayscale pada koordinat tertentu dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ambil data pada kolom tertentu dari data yang diperoleh langkah pertama. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra yang terdapat di memori
0 1 2 3 4 Nomor Kolom
Nomor Baris
0
1
2
3
4
//deklarasi variabel
databaris : pbytearray;
Nilai : integer ;
proses mengambil nilai pixel pada baris 2 dan kolom ke 1 hasilnya adalah :
// Langkah 1 ambil semua nilai pixel pada baris 2 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[2];
Variabel data baris akan berisi
0 1 2 3 4 Nomor Kolom
Databaris =
// Langkah 2 ambil nilai pixel pada kolom1 yang terdapat pada databaris
Data := Databaris[1];
// sehingga variabel data berisi 3 atau data = 3
Contoh lain :
Ambillah data pada baris 4 kolom 2
databaris := gb1.Picture.Bitmap.ScanLine[4];
Data := Databaris[2];
Hasilnya data berisi 5
1.2.3.2. Mengubah Nilai Pixel pada Citra GrayScale
Untuk mengubah nilai pixel citra grayscale pada koordinat tertentu juga dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ubah data pada kolom tertentu dari data yang diperoleh langkah pertama. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra yang terdapat di memori
0 1 2 3 4 Nomor Kolom
Nomor Baris
0
1
2
3
4
//deklarasi variabel
databaris : pbytearray;
Nilai : integer ;
proses mengubah nilai pixel pada baris 2 dan kolom ke 1 dengan 10 adalah :
// Langkah 1 ambil semua nilai pixel pada baris 2 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[2];
Variabel data baris akan berisi
0 1 2 3 4 Nomor Kolom
Databaris =
// Langkah 2 ubah isi databaris pada kolom ke 1 yang terdapat pada databaris
Databaris[1] := 10;
Maka Variabel data baris akan berisi
0 1 2 3 4 Nomor Kolom
Databaris =
Dan secara otomatis nilai pixel pada citra diposisi baris 2 kolom 1 bernilai 10
0 1 2 3 4 Nomor Kolom
Nomor Baris
0
1 berubah dari 3 menjadi 10
2
3
4
Saat nilai pixel pada gambar berubah yang berubah hanya di memori belum pada tampilan gambar, agar hasil langsung kelihatan maka perlu ditambah code gb1.Repaint.
Contoh:
Ubah nilai pixel baris ke 1 dan kolom ke 3 dengan 100
databaris := gb1.Picture.Bitmap.ScanLine[1];
Databaris[3] := 100;
gb1.Repaint;
1.2.3.3. Mengambil Nilai Pixel pada Citra Color
Untuk mengambil nilai pixel citra color pada koordinat tertentu juga dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ambil data pada kolom tertentu dari data yang diperoleh langkah pertama, Namun dengan sedikit modifikasi. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra color yang terdapat di memori
Layer Blue Layer Green Layer Red
0 1 2 0 1 2 0 1 2 Nomor Kolom
0 nomor baris
1 nomor baris
2 nomor baris
Pada citra color tersusun dari tiga layer yaitu Red, Green dan Blue pada contoh, nilai pixel dengan baris 1 dan kolom 2 bernilai Blue = 1, Green = 8 dan Red = 3.
Contoh ambil data nilai pixel posisi baris ke 0 dan kolom ke 1
//deklarasi variabel
databaris : pbytearray;
NilaiRed, NilaiGreen, NilaiBlue : integer ;
// Langkah 1 ambil semua nilai pixel pada baris 0 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[0];
Variabel data baris akan berisi
0 1 2 3 4 5 6 7 8 Nomor Kolom
Databaris =
// Langkah 2 ambil isi databaris pada kolom ke 1 yang terdapat pada databaris
Nomor kolom
NilaiBlue := Databaris[3*1 ] ; // ubah layer Blue
NilaiGreen := Databaris[3*1 +1]; // ubah layer Green
NilaiRed := Databaris[3*1+2] ; // ubah layer Red
Maka setelah diproses NilaiBlue = 1, NilaiGreen = 2 dan NilaiRed = 4
1.2.3.5. Mengubah Nilai Pixel pada Citra Color
Untuk mengubah nilai pixel citra color pada koordinat tertentu juga dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ubah data pada kolom tertentu dari data yang diperoleh langkah pertama Namun dengan sedikit modifikasi. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra color yang terdapat di memori
Layer Blue Layer Green Layer Red
0 1 2 0 1 2 0 1 2 Nomor Kolom
0 nomor baris
1 nomor baris
2 nomor baris
Pada citra color tersusun dari tiga layer yaitu Red, Green dan Blue pada contoh, nilai pixel dengan baris 1 dan kolom 2 bernilai Blue = 1, Green = 8 dan Red = 3.
Contoh Untuk mengubah ketiga nilai tersebut dengan delphi misal datanya adalah Blue = 5, Green = 4 dan Red = 9 pada baris ke 1 dan kolom ke 2 yaitu :
//deklarasi variabel
databaris : pbytearray;
NilaiRed, NilaiGreen, NilaiBlue : integer ;
// Langkah 1 ambil semua nilai pixel pada baris 1 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[1];
Variabel data baris akan berisi
0 1 2 3 4 5 6 7 8 Nomor Kolom
Databaris =
// Langkah 2 ubah isi databaris pada kolom ke 2 yang terdapat pada databaris
Nomor kolom
Databaris[3*2 ] := 5; // ubah layer Blue
Databaris[3*2 +1] := 4; // ubah layer Green
Databaris[3*2+2] := 9; // ubah layer Red
Setelah diproses Variabel databaris akan berisi :
0 1 2 3 4 5 6 7 8 Nomor Kolom
Databaris =
Secara otomatis citra yang asli juga akan berubah.
Citra color yang terdapat di memori setelah diubah
Layer Blue Layer Green Layer Red
0 1 2 0 1 2 0 1 2 Nomor Kolom
0 nomor baris
1 nomor baris
2 nomor baris
Data yang berubah
1.3. Aplikasi Pengolahan Citra
Pengolahan citra memiliki hubungan dengan bidang komputer yang lain, hubungan ini berdasarkan jenis inputnya dan jenis outputnya hubungan ini dapat dijelaskan dengan tabel 1.1 berikut ini.
Tabel 1.1. Hubungan Pengolahan citra dengan Bidang komputer lain
Output
Image Deskripsi
Input Image Image Processing Pattern Recognition, Computer Vision
Deskripsi Computer Graphics Data Processing lainnya
Pada tabel 1.1. pengolahan citra (image processing) merupakan suatu bidang pengetahuan dengan input berupa citra dan output juga berupa citra sedangkan disiplin ilmu yang lain adalah Computer Graphics.
1.3.1. Contoh Aplikasi Pengolahan Citra Digital
Gambaran mengenai cara-cara pengolahan citra digital dan macam-macamnya antara lain:
A. Segmentation
proses untuk membedakan atau memisah-kan obyek-obyek yang ada dalam suatu citra, seprti memisahkan obyek dengan latar belakangnya.
Gambar 1.12. Contoh Image Restoration
B. Image Enhancement
Berupa proses perbaikan citra dengan meningkatkan kualitas citra baik secara kontras maupun secara kecerahan.
Gambar 1.13. Contoh Image Enhancement
C. Color Image Processing
Adalah uatu proses yang melibatkan citra berwarna, baik berupa image enhancement, image restoration atau yang lainnya.
D. Image Restoration
Proses memperbaiki model citra, biasanya berhubungan dengan bentuk citra yang sesuai.
Gambar 1.14. Contoh Image Restoration
E. Wavelet dan Multiresolution Processing,
merupakan suatu proses yang menyatakan citra dalam beberapa resolusi.
F. Object Recognition
suatu proses yang dilakukan untuk mengenali obyek-obyek apa saja yang ada dalam sutau citra.
G. Image Compression
merupakan proses yang digunakan untuk mengubah ukuran data pada citra. Proses ini saat ini terus dikembangkan. JPEG-4 merupakan salah satu bentuk image compression yang baik dan saat ini banyak digunakan.
H. Morphological Processing
proses untuk memperoleh informasi yang menyatakan deskripsi dari suatu bentuk pada citra.
Secara umum cara pengolahan citra digital dibagi menjadi 3 tingkat pengolahan yaitu:
a. Low-Level Processing (pengolahan tingkat rendah), pengolahan ini operasional-operasional dasar dalam pengolahan citra, seperti pengurangan noise (noise reduction), perbaikan citra (image enhancement) dan restorasi citra (image restoration).
b. Mid-Level Processing (pengolahan tingkat menengah) yang meliputi segmentasi pada citra, deskripsi obyek dan klasifikasi obyek secara terpisah.
c. High-Level Processing (pengolahan tingkat tinggi), yang meliputi analisa citra.
1.4. Menggunakan peralatan pengolahan citra
Pada sub bab ini akan dijelaskan mengenai cara mengakses sebuah pixel dalam sebuah citra , cara menampilkan citra ke form dari file , cara menyimpan citra ke file, mengakses ukuran citra baik lebar maupun tingginya, cara membedakan format citra (biner,gray scale atau true color) dan lain-lain.
Langkah – langkah Praktikum :
1. Aktifkan program PhotoShop
Yaitu : Start AllProgram PhotoShop
Maka akan muncul Gambar 1.1
Gambar 1.4.1 Tampilan Pertama Adobe Photoshop
2. Ambil sebuah gambar
File Open Klik Gambar yang akan di ambil
3. Kemudian untuk melakukan perbaikan gambar misal brightness maupun contrast nya dapat dilakukan dengan cara :
4. Image Adjustment brightness/contrast
Kemudian ubah-ubahlah posisi penunjuk brightness maupun contrast
Gambar 1.4.2 Pemilihan Brightness/contrast pada Adobe Photoshop
Gambar 1.4.3 Setting Brightness/contrast pada Adobe Photoshop
Cobalah pemrosesan citra yang lain misal : invert, equalize, threshold dan posterize. Untuk melihat aplikasi pengenalan karakter dapat menggunakan program OCR.
BAB II
REPRESENTASI CITRA
Pada bab ini akan dijelaskan mengenai cara merepresentasikan dan mengakses sebuah pixel dalam sebuah citra , cara menampilkan citra ke form dari file , cara menyimpan citra ke file, mengakses ukuran citra baik lebar maupun tingginya, cara membedakan format citra (biner,gray scale atau true color) dan lain-lain.
2.1. Representasi Citra
Ada2 citra, yakni: citra kontinu dan citra diskrit(citradigit)
Citra kontinu
Diperoleh dari system optic yang menerima sinyal analog, seperti mata manusia dan kamera analog.
Citra diskrit (citradigital)
Dihasilkan melalui proses digitalisasi terhadap citra kontinu.
2.1.1. Citra Digital
Citra digital merupakan fungsi intensitas cahaya f(x,y), dimana harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik(x,y) merupakan tingkat kecemerlangan atau intensitas cahayacitra pada titik tersebut;
Citra digital adalah citra f(x,y) dimana dilakukan diskritisasi koordinat spasial (sampling) dan diskritisasi tingkat kecemerlangannya/keabuan(kwantisasi);
Citra digital merupakan suatu matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya (yang disebut sebagai elemen gambar/ piksel/ pixel / picture element / pels) menyatakan tingkat keabuan pada titik tersebut.
Nilai f(x,y) merupakan= i(x,y) . r(x,y)
Nilai i(x,y) adalah jumlah cahaya yang berasal dari sumbernya(illumination)
Dimana 0 ≤ i(x,y) < ∞
Nilai r(x,y) adalah derajat kemampuan objek memantulkancahaya(reflection)
Dimana 0 ≤ i(x,y) ≤∞
Sehingga
0 ≤ f(x,y) < ∞
Nilai f(x,y) disebut juga derajat keabuan(graylevel) mempunyai nilai
lmin< f < lmax, Selang(lmin, lmax) disebut skala keabuan
Contoh: citra hitam putih dengan256 level mempunyai skala keabuan (0,255),
Nilai 0 menyatakan putih, nilai 255 menyatakan hitam, kecuali itu terletak diantaranya.
Gambar 2.1. Proses Digitasi Citra
2.1.2. Digitalisasi Citra
Citra digital diperoleh dari proses digitalisasi. Ada2 proses digitalisasi yakni:
1.sampling
merupakan proses pengambilan nilai diskrit koordinat ruang(x,y) dengan melewatkan citra melalui grid(celah).
2.kuantisasi
merupakan proses pengelompokkan nilai tingkat keabuan citra kontinu ke dalam beberapa level atau merupakan proses membagi skala keabuan (0,L) menjadi G buah level yg dinyatakan dengan suatu harga bilangan bulat (integer), dinyatakan sebagai
G = 2m
G : derajat keabuan,
m : bilangan bulat positif
Citra digital berukuran N x M dinyatakan dengan matriks yang berukuran N baris dan M kolom
f(0,0) f(0,1) … f(0,M)
f(x,y) = …
f(N-1,0) f(N-1,1) … f(N-1, M-1)
Berarti penyimpanan untuk citra digital yang disampling dengan N x M piksel dan dikuantisasi menjadi 2m level derajat keabuannya membutuhkan memori
N x M x m. Contoh, citra Lena yg berukuran 512 x 512 dengan 256 derajat keabuan membutuhkan memori sebesar 512 x 512 x 8 bit = 2048.000 bit.
Resolusi gambar ditentukan oleh N dan m. Makin tinggi nilainya maka citra yang dihasilkan makin bagus kualitasnya (mendekati citra kontinu).
Gambar 2.2. Digitasi Citra
•ResolusiCitra
Menentukan seberapa dekat citra tersebut dengan asal (kontinu). Dikenal: resolusi spasial dan resolusi kecemerlangan, berpengaruh pada besarnya informasi citra yang hilang.
–Resolusi spasial: halus/ kasarnya pembagian kisi-kisi baris dan kolom. Transformasi citra continue ke citra digital disebut digitisasi (sampling). Hasil digitisasi dengan jumlah baris 256 dan jumlah kolom 256 – resolusi spasial 256 x 256.
–Resolusi kecemerlangan (intensitas/brightness): halus/ kasarnya pembagian tingkat kecemerlangan. Transformasi data analog yang bersifat continue ke daerah intensitas diskrit disebut kwantisasi. Bila intensitas piksel berkisarantara0 dan255 -resolusikecemerlangancitraadalah256.
ResolusiCitraResolusiCitra
•Sampling Uniform danNon-uniform
–Sampling Uniformmempunyaispasi(interval) barisdankolomyang sama padaseluruharea sebuahcitra. Prosessampling melaluicelahygberukuransama.
–Sampling Non-uniformbersifatadaptiftergantungkarakteristikcitradanbertujuanuntukmenghindariadanyainformasiyang hilang. Daerahcitrayang mengandungdetilyang tinggidi-sampling secaralebihhalus, sedangkandaerahyang homogendapatdi-sampling lebihkasar. Kerugiansistemsampling Non-uniform adalahdiperlukannyadata ukuranspasiatautandabatasakhirsuatuspasi.
Prosessampling melaluicelahygbervariasi.ResolusiSpasial-SamplingResolusiSpasial-Sampling
•KuantisasiUniform, Non-uniform, danTapered
–KuantisasiUniformmempunyaiinterval pengelompokantingkatkeabuanyang sama (misal: intensitas1 s/d 10 diberinilai1, intensitas11 s/d 20 diberinilai2, dstnya).
–KuantisasiNon-uniform: Kuantisasiyang lebihhalusdiperlukanterutamapadabagiancitrayang menggambarkandetilatauteksturataubatassuatuwilayahobyek, dankuantisasiyang lebihkasardiberlakukanpadawilayahyang sama padabagianobyek.
–KuantisasiTapered: bilaadadaerahtingkatkeabuanyang seringmunculsebaiknyadi-kuantisasisecaralebihhalusdandiluarbatasdaerahtersebutdapat slebihkasar(local stretching).di-kuantisasi ecara
ResolusiKecemerlangan-KuantisasiResolusiKecemerlangan-Kuantisasi
WarnaCitraWarnaCitra
•Warnapadacitradiperlukankarena:-utkanalisiscitrasecaraotomatis, krnwarnadptmenyerderhanakanprosesidentifikasidanekstraksibendadarisuatucitra-matamanusiadptmembedakanribuanperubahanwarnadg berbagaiintensitas, sedangcitraygmonokromatihanyadptmembedakan2 lusin10 100 120 100 100120 100 1010 140 255 140 140255 100 1010 255 140 255 140 255 120 1010 140 140255 140 255 120 1010 120 255 140 140255 100 1010 255 140 140 120 255 100 1010 255 255255120 255 100 1010 100 120 100 100120 100 10Gambarinimerupakancitramonokromatik8 bits dg ukuran[8 x 8] dg skalakeabuan[0, 255]. Berarticitratsbadalahangka21 dg latarbelakanggelap.
•Citra biner(binary image) adalahcitraygsetiappikselnyahanyamemiliki2 kemungkinanderajatkeabuanyakni0 dan1.
•Prosespembinerandilakukandg membulatkankeatasataukebawahuntuksetiapnilaikeabuandaripikselygberadadiatasataubawahhargaambang. Metodeuntukmenentukanbesarnyahargaambangdisebutthresholding.
0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 0
0 1 1 1 0 1 0 0
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 0
0 1 0 0 0 1 0 0
0 1 1 1 0 1 0 0
0 0 0 0 0 0 0 0Citra BinerCitra Biner
4-tetangga pikselP 8-tetangga pikselP
X X X X
X P X X P X
X X X X
Connectivity/Konektivitas: 4-tetangga atau8-tetangga dengankriteriagray level yang sama, misal: sama-sama0 atausama-sama1 atausama-samabedanyatidaklebihdari5 tingkatkeabuan, dlsb.nyaHubunganantarapikseldanpengertianconnectivityHubunganantarapikseldanpengertianconnectivity
Labelling of connected componentLabelling component
Dengankriteriapikselsama-samabernilai1: (a) denganaturan4-tetangga dan(b) denganaturan8 tetangga:
OperasiAritmetikpadaCitraOperasiAritmetikpadaCitra
•OperasiAritmetikantaraduacitra–+ -x /–Band ratio antaracitrasensor optikLandsatTM band 3 danband 4 dapatdigunakanuntukanalisisvegetasi,begitujugaratio antaraselisihdanjumlahnya.Operasiselisihantaraduacitratemporal dapatdigunakanuntukdeteksiperubahanwilayah.
•Operasiselisihantaraduacitratemporal dapatdigunakanuntukdeteksiperubahanwilayah
OperasiAritmetikpadaCitraOperasiAritmetikpadaCitra
•OperasiLojikantaraduacitra
–OR AND NOT
–Masking (AND) operation dapatdigunakanuntukmemisahkanantarabagianobyekdanbagianlatarbelakangpadacitrabiomedik.
OperasiAritmetikpadaCitraOperasiAritmetikpadaCitra
•PembentukanCitra (Data Acquisition): Menentukandata yang diperlukandanmemilihmetodeperekamancitradijital.
•PengolahanCitra TingkatAwal(Image Preprocessing): Meningkatkankontras, menghilangkangangguangeometrik/ radiometrik, menentukanbagiancitrayang akandiobservasi.
•SegmentasiCitra (Image Segmentation) danDeteksiSisi(Edge Detection): Melakukanpartisicitramenjadiwilayah-wilayahobyek(internal properties) ataumenentukangarisbataswilayahobyek(external shape characteristics).
•SeleksidanEkstraksiCiri(Feature Extraction and Selection): Seleksicirimemilihinformasikwantitatifdariciriyang ada, yang dapatmembedakankelas-kelasobyeksecarabaik. Ekstraksicirimengukurbesarankwantitatifcirisetiappiksel
MetodologiPengolahanCitraMetodologiPengolahanCitra
MetodologiPengolahanCitra (Lanjutan)
•RepresentasidanDeskripsi: Suatuwilayahdapatdirepresentasisebagaisuatulist titik-titikkoordinatdalamloop yang tertutup, dengandeskripsiluasan/ perimeternya
•PengenalanPola(Pattern Recognition): Memberikanlabel kategoriobyekpadasetiappikselcitraberdasarkaninformasiyang diberikanolehdeskriptoratauciri piksel bersangkutan(pewilayahanjaringankerasdanpewilayahanberbagaijaringanlunakpadacitrabiomedik)
•InterpretasiCitra (Image Interpretation): Memberikanartipadaobyekyang sudahberhasildikenali(daricitraklasifikasibiomedikdapatdilihatadanyapenyakittumor)
•PenyusunanBasis Pengetahuan: Basis pengetahuaninidigunakansebagaireferensipadaprosestemplate matching / object recognition.
2.2. Menampilkan Citra pada Form Delphi
Dalam Delphi disediakan sarana untuk menampilkan citra, yaitu melalui komponen TImage yang terdapat pada palet komponen Additional. Komponen ini memiliki property picture yang digunakan untuk menyimpan data citra. Citra yang akan ditampilkan diambil dari file gambar yang dapat ditentukan saat mendesain dengan cara mengisi nilai property, atau saat program dijalankan menggunakan prosedur LoadFromFile untuk mempermudah mengakses letak file didisk bisa menggunakan komponen OpenPictureDialog yang ada pada palet Komponen Dialog.
Contoh
Ikuti langkah-langkah berikut untuk menampilkan sebuah citra :
Langkah :
1. Bukalah Program Delphi dengan cara :
Start AllProgram Borland Delphi6 delphi 6
Gambar 2.1 Form Delphi
2. Pilih Additional Double klik Image
3. Klik simbol image yang terdapat pada form dan ubah propertynya
Autosize diset true
Center diset true
Name diubah gb1 (singkatan gambar 1)
Proportional diset true
Gambar 2.2 Properti image1 yang telah diubah
4. Pilih Dialog klik OpenPictureDialog
Sehingga Simbol ini terdapat pada form1, klik simbol tersebut dan ubahlah name pada propertynya menjadi opd.
5. Pilih Standard klik Button
6. Klik satu kali simbol ini yang terdapat pada form1 kemudian ubahlah caption pada propertynya menjadi “ambil gambar” dan akan menjadi Kemudian lakukan double klik pada simbol ”ambil gambar”, sehingga keluar Source codenya seperti berikut.
Gambar 2.3. Code Untuk mengambil gambar dengan open picture dialog
Image1 yang diuba jadi gb1 OepenPictureDialog
Button1
Gambar 2.4. Tampilan form1 sebelum menjalankan OpenPictureDialog
Jalankan program yang telah dibuat dengan cara menekan F9, kemudian klik button ambil gambar dan arahkan kelokasi gambar yang akan diambil dan hasilnya adalah:
Gambar 2.5. Tampilan untuk mengambil gambar dengan OpenPictureDialog
Kemudian klik button open sehingga gambar bumi akan muncul di form 1 seperti yang terlihat pada gambar:
Gambar 2.6. Menampilkan gambar di form1 dengan prosedur LoadFromFile
2.2. SubProperty Picture
Subproperty yang penting pada picture diantaranya :
A. Height
Berisi informasi nilai tinggi citra
B. Width
Berisi informasi nilai lebar citra
C. Bitmap
Berisi informasi data format dan piksel citra.
Dalam Delphi, informasi format citra ada dalam subproperty Bitmap, yaitu PixelFormat. Pada bahasan ini pengolahan dilakukan pada nilai-nilai pixel dengan format Bitmap. Dengan mengetahui nilai pixelFormat dapat diketahui cara penyimpanan pixel dalam memori yang tentunya akan mempermudah pemrograman.
Nilai Pixel Format pada Bitmap
A. pf1bit; Citra biner/monokrom
B. pf8bit; Citra skala keabuan, dalam bahasan ini dipresentasikan sebagai citra berindeks 8 bit , dengan komponen palet warna merah, hijau dan biru yang benilai sama , sehingga menampilkan warna keabuan dari hitam sampai putih.
C. pf24bit; Citra true color (16 juta warna)
2.3. Mengubah Ukuran Tampilan Citra
Tampilan citra tidak akan berubah ukurannya saat ukuran form citra diubah. Bila ukuran window lebuh besar dari ukuran citra, maka citra hanya mengisi sebagian window, namun bila ukuran window lebih kecil maka ukuran citra hanya dditampilkan sebagian dari window. Untuk mengubah ukuran citra bisa dilakukan dengan memodifikasi nilai property Streched pada komponen CitraAsal menjadi True. Agar penampilan citra yang distretch sering tidak berubah akibat aspect ratio (perbandingan antara tinggi dan lebar) citra ikut berubah, maka nilai property Proportional pada komponen CitraAsal diubah menjadi True.
Namun, perubahan ukuran yang dilakukan tersebut tidak bersifat permanen. Perubahan sebenarnya hanya terjadi pada penampilan dilayar yang dilkukan oleh Delphi. Data dan ukuran sebenarnya tidak berubah dan masih ada dalam memori komponen Bitmap yang digunakan. Pengubahan ukuran citra tersebut adalah salah satu operasi dalam pengolahan citra, yang termasuk dalam kelompok geometri.
2.4. Menyimpan Citra ke File.
Penyimpanan File gambar dalam Delphi bisa dilakukan dengan prosedure SaveTo File dari komponen TPicture. Untuk mempermudah dalam menentukan nama file dapat di dimanfaatkan komponen TSavePictureDialog yang ada pada palet Komponen Dialog, karena memiliki fasilitas preview, sehingga memperkecil kesalahan letak file di memori.
Untuk menyimpan gambar ke file dapat mengikuti langkah berikut :
Contoh
Lakukan semua langkah yang terdapat pada contoh menampilkan citra yaitu contoh sebelumnya ( langkah 1 sampai langkah 6)
Langkah :
7. Pilih Dialog klik SavePictureDialog
Sehingga Simbol ini terdapat pada form1, klik simbol tersebut dan ubahlah name pada propertynya menjadi spd.
8. Pilih Standard klik Button
9. Klik satu kali simbol ini yang terdapat pada form1 kemudian ubahlah caption pada propertynya menjadi “Simpan gambar” dan akan menjadi Kemudian lakukan double klik pada simbol ”Simpan gambar”, sehingga keluar Source codenya seperti berikut.
Gambar 2.7. Code Untuk menyimpan gambar dengan SavePictureDialog
SavePictureDialog
Button2
Gambar 2.8. Tampilan form1 sebelum menjalankan SavePictureDialog
2.5. Mengakses Nilai Pixel
Pada bagian ini akan dijelas bagaimana cara mengakses nilai pixel pada koordinat f(x,y) untuk gambar grayscale. Untuk mengakses nilai pixel diperlukan dua langkah yang pertama ambil data satu baris tertentu pada citra dan yang kedua ambil data kolom pada data baris yang sudah diambil.
2.5.1. Mengambil Nilai Pixel pada Citra GrayScale
Untuk mengambil nilai pixel citra grayscale pada koordinat tertentu dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ambil data pada kolom tertentu dari data yang diperoleh langkah pertama. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra yang terdapat di memori
0 1 2 3 4 Nomor Kolom
Nomor Baris
0
1
2
3
4
//deklarasi variabel
databaris : pbytearray;
Nilai : integer ;
proses mengambil nilai pixel pada baris 2 dan kolom ke 1 hasilnya adalah :
// Langkah 1 ambil semua nilai pixel pada baris 2 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[2];
Variabel data baris akan berisi
0 1 2 3 4 Nomor Kolom
Databaris =
// Langkah 2 ambil nilai pixel pada kolom1 yang terdapat pada databaris
Data := Databaris[1];
// sehingga variabel data berisi 3 atau data = 3
Contoh lain :
Ambillah data pada baris 4 kolom 2
databaris := gb1.Picture.Bitmap.ScanLine[4];
Data := Databaris[2];
Hasilnya data berisi 5
2.5.2. Mengubah Nilai Pixel pada Citra GrayScale
Untuk mengubah nilai pixel citra grayscale pada koordinat tertentu juga dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ubah data pada kolom tertentu dari data yang diperoleh langkah pertama. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra yang terdapat di memori
0 1 2 3 4 Nomor Kolom
Nomor Baris
0
1
2
3
4
//deklarasi variabel
databaris : pbytearray;
Nilai : integer ;
proses mengubah nilai pixel pada baris 2 dan kolom ke 1 dengan 10 adalah :
// Langkah 1 ambil semua nilai pixel pada baris 2 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[2];
Variabel data baris akan berisi
0 1 2 3 4 Nomor Kolom
Databaris =
// Langkah 2 ubah isi databaris pada kolom ke 1 yang terdapat pada databaris
Databaris[1] := 10;
Maka Variabel data baris akan berisi
0 1 2 3 4 Nomor Kolom
Databaris =
Dan secara otomatis nilai pixel pada citra diposisi baris 2 kolom 1 bernilai 10
0 1 2 3 4 Nomor Kolom
Nomor Baris
0
1 berubah dari 3 menjadi 10
2
3
4
Saat nilai pixel pada gambar berubah yang berubah hanya di memori belum pada tampilan gambar, agar hasil langsung kelihatan maka perlu ditambah code gb1.Repaint.
Contoh:
Ubah nilai pixel baris ke 1 dan kolom ke 3 dengan 100
databaris := gb1.Picture.Bitmap.ScanLine[1];
Databaris[3] := 100;
gb1.Repaint;
2.5.3. Mengambil Nilai Pixel pada Citra Color
Untuk mengambil nilai pixel citra color pada koordinat tertentu juga dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ambil data pada kolom tertentu dari data yang diperoleh langkah pertama, Namun dengan sedikit modifikasi. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra color yang terdapat di memori
Layer Blue Layer Green Layer Red
0 1 2 0 1 2 0 1 2 Nomor Kolom
0 nomor baris
1 nomor baris
2 nomor baris
Pada citra color tersusun dari tiga layer yaitu Red, Green dan Blue pada contoh, nilai pixel dengan baris 1 dan kolom 2 bernilai Blue = 1, Green = 8 dan Red = 3.
Contoh ambil data nilai pixel posisi baris ke 0 dan kolom ke 1
//deklarasi variabel
databaris : pbytearray;
NilaiRed, NilaiGreen, NilaiBlue : integer ;
// Langkah 1 ambil semua nilai pixel pada baris 0 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[0];
Variabel data baris akan berisi
0 1 2 3 4 5 6 7 8 Nomor Kolom
Databaris =
// Langkah 2 ambil isi databaris pada kolom ke 1 yang terdapat pada databaris
Nomor kolom
NilaiBlue := Databaris[3*1 ] ; // ubah layer Blue
NilaiGreen := Databaris[3*1 +1]; // ubah layer Green
NilaiRed := Databaris[3*1+2] ; // ubah layer Red
Maka setelah diproses NilaiBlue = 1, NilaiGreen = 2 dan NilaiRed = 4
2.5.4. Mengubah Nilai Pixel pada Citra Color
Untuk mengubah nilai pixel citra color pada koordinat tertentu juga dilakukan dua langkah yang pertama ambil data satu baris pada baris yang ditentukan dan yang kedua ubah data pada kolom tertentu dari data yang diperoleh langkah pertama Namun dengan sedikit modifikasi. Untuk lebih jelasnya ikuti ilustrasi berikut :
Citra color yang terdapat di memori
Layer Blue Layer Green Layer Red
0 1 2 0 1 2 0 1 2 Nomor Kolom
0 nomor baris
1 nomor baris
2 nomor baris
Pada citra color tersusun dari tiga layer yaitu Red, Green dan Blue pada contoh, nilai pixel dengan baris 1 dan kolom 2 bernilai Blue = 1, Green = 8 dan Red = 3.
Contoh Untuk mengubah ketiga nilai tersebut dengan delphi misal datanya adalah Blue = 5, Green = 4 dan Red = 9 pada baris ke 1 dan kolom ke 2 yaitu :
//deklarasi variabel
databaris : pbytearray;
NilaiRed, NilaiGreen, NilaiBlue : integer ;
// Langkah 1 ambil semua nilai pixel pada baris 1 pada gb1 (image1)
databaris := gb1.Picture.Bitmap.ScanLine[1];
Variabel data baris akan berisi
0 1 2 3 4 5 6 7 8 Nomor Kolom
Databaris =
// Langkah 2 ubah isi databaris pada kolom ke 2 yang terdapat pada databaris
Nomor kolom
Databaris[3*2 ] := 5; // ubah layer Blue
Databaris[3*2 +1] := 4; // ubah layer Green
Databaris[3*2+2] := 9; // ubah layer Red
Setelah diproses Variabel databaris akan berisi :
0 1 2 3 4 5 6 7 8 Nomor Kolom
Databaris =
Secara otomatis citra yang asli juga akan berubah.
Citra color yang terdapat di memori setelah diubah
Layer Blue Layer Green Layer Red
0 1 2 0 1 2 0 1 2 Nomor Kolom
0 nomor baris
1 nomor baris
2 nomor baris
Data yang berubah
BAB III
OPERASI TITIK
Pada Bagian ini akan dijelaskan mengenai pengertian operasi titik dan macam-macam operasi titik seperti fungsi transformasi skala keabuan, modifikasi kecemerlangan, modifikasi kontras, negasi dan lain-lain. .
3.1. Pengertian Operasi titik
Operasi titik adalah operasi terhadap citra dimana setiap titik diolah secara tidak gayut(tergantung) dengan titik-titik yang lain.
Tiap titik memiliki 2 buah karakteristik, yaitu :
o Koordinat, yang menunjukkkan lokasi dari titik tersebut didalam citra
o Nilai dari titik itu sendiri (tingkat keabuan atau warna)
Operasi titik tidak gayut terhadap koordinat titik itu sendiri maupun titik-titik yang lain. Hanya nilai dari titik itu sendiri yang dimodifikasi. Sehingga, pada titik yang memiliki nilai keabuan atau warna yang sama akan diubah menjadi keabuan atau warna yang sama pula.
Beberapa operasi pengolahan citra yang termasuk dalam kelompok operasi titik adalah, operasi modifikasi kecemerlangan(Brigtness modification), peningkatan kontras (contrast enhacement), negasi (negation), dan operasi pengambangan (tresholding).
3.2. Histogram
Sebelum mengkaji lebih jauh macam-macam operasi titik yang disebut sebelumnya terlebih dulu akan dibahas mengenai Histogram yang merupakan sebuah fungsi yang menjelaskan berapa kali sebuah nilai keabuan muncul dalam sebuah gambar. Histogram ini digunakan Untuk menyatakan distribusi data dari nilai derajat keabuan.
Misal terdapat gambar dengan code warna sebagai berikut :
Maka Histogramnya adalah : X = 10 3 3 2 4 3
Artinya angka 0 muncul 10 kali, angka 1 muncul 3 kali, angka 2 muncul 3 kali, angka 3 muncul 2 kali, angka 4 muncul 4 kali dan angka 5 muncul 2 kali, total kemunculan adalah 25 kali atau sebanyak jumlah pixel.
3.2.1. Pembuatan Histogram
Langkah untuk menentukan Histogram skala keabuan:
o Pertama siapkan variabel vektor untuk menyimpan cacah piksel untuk masing-masing keabuan.
o Untuk semua piksel dalam citra, periksa nilai piksel tersebutdan naikkan 1 nilai variabel yang menyimpan cacah piksel dengan nilai keabuan tersebut.
Algoritma untuk menghitung histogram warna dilakukan dengan cara yang sama terhadap masin-masing elemen warna (merah(R), hijau (G) dan Biru(B)). Histogram hanya dihitung bila sudah ada citra yang diambil dari sebuah file, karena itu periksa apakah telah ada citra atau belum
3.2.2. Histogram Tingkat Keabuan
Merupakan suatu fungsi yang menunjukkan jumlah titik yang ada dalam suatu citra untuk tingkat keabuan. Histogram Tingkat keabuan ini merupakan alat bantu yang paling sederhana dan sangat berguna dalam pengolahan citra digital.
Absis (x) nya adalah tingkat keabuan, dan ordinat (y) adalah frekuensi kemunculan atau banyaknya titik dengan nilai keabuan tertentu.
3.2.3. Kegunaan Histogram pada pengolahan citra
kegunaan histogram dalam pengolahan citra antara lain :
1. Penentuan parameter digitisasi
Digunakan sebagai indikasi visual untuk menentukan apakah suatu citra telah berada dalam area yang tepat pada skala keabuan.
2. Pemilihan batas ambang
Digunakan untuk menonjolkan citra suatu obyek dari latar belakangnya.
Banyak sekali proses pengolahan citra yang melibatkan distribusi data, seperti pada contoh konversi biner, image enhancement (perbaikan citra), distribusi dari nilai derajat keabuan pada citra menjadi suatu acuan dasar. Untuk menyatakan distribusi data dari nilai derajat keabuan ini dapat digunakan nilai histogram.
Contoh hasil histogram pada sebuah gambar sebagai berikut:
Gambar 3.1. Contoh hasil histogram
3.3. Fungsi transformasi skala keabuan
Operasi titik dilakukan dengan memodifikasi nilai skala keabuan dari titik yang ditinjau tersebut berdasarkan fungsi tertentu, yang disebut sebagai fungsi transformasi skala keabuan (gray-scale transformation). Fungsi ini memetakan tingkat keabuan input (Ki) ke citra keabuan output(K0).
Secara Umum fungsi tersebut dapat dirumuskan sebagai :
K0 = f(K)
Bentuk fungsi Gray-Scale Transformation (f), bisa berupa fungsi linier atau non linier tergantung aplikasi pengolahan citra yang kita gunakan. Pada umumnya bentuk fungsi Gray-Scale Transformation (GST), bersifat monotonically increasing, dimana dengan bertambahnya nilai keabuan masukan (input), keabuan keluaran (output)nya tidak pernah menurun.
Dalam citra True Color, Fungsi GST(f) diterapkan pada ketiga elemen warna yang ada (merah,hijau dan biru). Ketiga fungsi GST bisa memiliki bentuk sama atau berbeda. Artinya perlakuan pada ketiga elemen warna tersebut tidak harus sama .
Secara umum, Operasi titik pada citra warna dapat dirumuskan sebagai :
R0 = fR(Ri)
G0 = fG(Gi)
B0 = fB(Bi)
Dimana,
Ri, Gi, Bi, merupakan komponen warna citra input untuk elemen merah, hijau dan biru.
R0, G0, B0, merupakan komponen warna citra output, dan
fR, fG, fB, merupakan fungsi GST untuk elemen merah, hijau dan biru.
3.4. Modifikasi kecemerlangan citra
Dalam pengolahan citra penambahan nilai warna putih dilakukan dengan cara meningkatkan skala keabuan dari seluruh bagian (setiap titik) dalam citra , untuk meningkatkan kecemerlangannya (Brightness). Sebaliknya jika citra terlalu cemerlang atau tampak pucat, maka tingkat keabuan dari setiap titik dalam citra itu perlu diturunkan.
Proses memetakan skala keabuan dapat dirumuskan dalam fungsi linier berikut ;
K0 = Ki + C
Dimana,
C merupakan konstanta yang bernilai positif bila hendak meningkatkan kecemerlangan citra , dan sebaliknya bernilai negatif bila hendak menurunkan kecemerlangan citra. Pada operasi ini Terjadi pergeseran histogram kearah kanan pada operasi peningkatan kecemerlangan dan kekiri pada operasi peredupan (penurunan kecemerlangan).
Pada citra true color, modifikasi kecemerlangan diterapkan pada setiap elemen warna yang masing-masing nilainya berbeda dengan lainnya. Contohnya, jika warna citra akan dibuat lebih hijau, maka nilai hijau pada setiap titik ditambah dengan nilai tertentu, sebaliknya jika warna merah pada citra dikurangi, maka elemen merah setiap titik dikurangi.
Secara umum formula tersebut dapat dinyatakan dengan:
R0 = Ri + CR
G0 = Gi + CG
B0 = Bi + CB
Dimana,
o CR, CG dan CB, merupakan komponen warna citra input untuk elemen merah, hijau dan biru.
o R0, G0, B0, merupakan komponen warna citra output, dan
o fR, fG, fB, merupakan fungsi GST untuk elemen merah, hijau dan biru.
Contoh Gambar modifikasi kecemerlangan adalah :
Gambar 3.2.Form untuk proses brightness positif
Hasil dari proses brightness dengan nilai penambah negatif dengan menggeser scroll ke kiri adalah sebagai berikut:
Gambar 3.3. Form untuk proses brightness negative
3.5. Peningkatan kontras
Sebuah citra akan kelihatan kurang kontras bila dengan kurva histogram citra tersebut memiliki nilai keabuan yang tidak terlalu berbeda untuk semua titik. Ini dikarenakan kurva tersebut mempunyai kurva histogram yang sempit, dengan tepi kiri dan kanan yang berdekatan, sehingga titik tergelap dalam citra tersebut tidak mencapai hitam pekat dan titik paling terang dalam citra tersebut tidak berwarna putih cemerlang. Ada berbagai formula peningkatan kontras yang dapat digunakan, diantara fungsi GST yang bisa digunakan adalah :
K0 = G(Ki – P) + P
Dimana,
G merupakan koefisien penguatan kontras, dan
P merupakan nilai skala keabuan yang dipakai sebagai pusat pengontrasan
Pada peningkatan kontras dasarnya adalah membuat titik yang cenderung gelap menjadi lebih gelap dan yang cenderung terang menjadi lebih cemerlang. Efek dari peningkatan kontras terhadap histogram mengakibatkan terjadinya pelebaran histogram dengan pusat di P kearah kanan dan kiri. Apabila koefisien penguatan kontras G kurang dari 1, maka pada gambar akan terjadi pengurangan kontras.
Contoh Peningkatan kontras :
Gambar 3.4. Form untuk proses peningkatan kontras
Gambar 3.5.Form untuk proses pengurangan kontras
3.6. Negasi atau Inversi Citra
Negasi citra adalah proses negatif pada photo, dimana setiap nilai citra dibalik dengan acuan threshold yang diberikan. Proses ini banyak digunakan pada citra-citra medis seperti USG dan X-Ray. Untuk citra dengan derajat keabuan 256, proses Negasi citra didefinisikan dengan:
xn = 255 - x
Contoh Hasil dari proses negasi adalah sebagai berikut:
Gambar 3.6. Contoh hasil proses Negasi
Perhatikan histogram dari kedua gambar. Histogram Negasi adalah kebalikan secara horisontal (horisontal flip) dari histogram dari citra. Proses Negasi ini merupakan salah satu proses dasar dalam image enhancement dengan menggunakan histogram.
Jika kita bandingkan foto hasil cetakan dengan hasil negatifnya, maka titik yang berwarna putih pada citra mempunyai warna hitam pada film negatifnya, demikian pula sebaliknya. Dengan demikian operasi negasi dilakukan dengan mengubah nilai keabuan titik dalam citra dengan nilai ”negatif”nya.
Sehingga Fungsi GST yang bisa diformulasikan adalah :
K0 =K max – Ki
Dimana,
K max, merupakan nilai skala keabuan yang tertinggi
Untuk skala keabuan 8 bit, maka Kmax = 255.
Pengaruh operasi negasi terhadap histogram dapat dilihat pada gambar dibawah ini, dimana histogram citra asli dicerminkan kearah horisontal.
3.7. Operasi citra True Color Ke Keabuan
Citra True Color bisa dikonversi menjadi citra keabuan dengan operasi titik Secara sederhana, intensitas dapat didefinisikan sebagai nilai rerata dari ketiga nilai elemen warna.
Untuk menyederhanakan model citra langkah awal yang sering dilakukan dalam image processing adalah mengubah citra berwarna menjadi citra gray-scale. Seperti diketahui citra berwarna terdiri dari 3 layer matrik yaitu R-layer, G-layer dan B-layer. Sehingga untuk melakukan proses-proses selanjutnya tetap diperhatikan tiga layer di atas.
Bila setiap proses perhitungan dilakukan menggunakan tiga layer, berarti dilakukan tiga perhitungan yang sama. Sehingga konsep itu diubah dengan mengubah 3 layer di atas menjadi 1 layer matrik gray-scale dan hasilnya adalah citra gray-scale. Dalam citra ini tidak ada lagi warna, yang ada adalah derajat keabuan.
Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing r, g dan b menjadi citra gray scale dengan nilai s, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai r, g dan b sehingga dapat dituliskan menjadi:
Pada penjelasan di atas pengubahan citra berwarna menjadi citra gray-scale dilakukan dengan menggunakan rata-rata nilai gray-scale dari setiap layer R,G dan B. Hal ini bukanlah suatu keharusan. Meskipun hasilnya sudah cukup bagus, pemakaian nilai rata-rata masih belum optimal untuk menunjukkan citra gray-scale sehingga terkadang harus dilakukan pengubahan komposisi, misalkan dengan:
s = 0.42 r + 0.32 g + 0.28 b
Jika rumus tersebut diCoba saat dilihat sepintas mungkin hasilnya tidak berbeda dengan penggunaan nilai rata-rata, tetapi bila dicermati akan tampak perbedaan sesungguhnya.
Contoh hasil pemakaian nilai rata-rata dimana s=(r+g+b)/3 dan pemakaian nilai gray scale optimal s = 0.42r + 0.32g + 0.28b adalah sebagai berikut:
Gambar 3.7. Perbandingan gray-scale rata-rata dan optimal
3.8. Pengambangan (thresholding)
Thresholding digunakan untuk mengatur jumlah derajat keabuan yang ada pada citra. Dengan menggunakan thresholding maka derajat keabuan bisa diubah sesuai keinginan, misalkan diinginkan menggunakan derajat keabuan 16, maka tinggal membagi nilai derajat keabuan dengan 16. Proses thresholding ini pada dasarnya adalah proses pengubahan kuantisasi pada citra, sehingga untuk melakukan thresholding dengan derajat keabuan a dapat digunakan rumus:
dimana :
w adalah nilai derajat keabuan sebelum thresholding
x adalah nilai derajat keabuan setelah thresholding
Berikut ini contoh thresholding mulai di 256, 16, 4 dan 2.
Gambar 3.8. Contoh thresholding
Untuk gambar berwarna terlebih dahulu diubah menjadi gray-scale dengan menggunakan cara rata-rata x=(r+g+b)/3 baru kemudian dithreshold. Hanya proses RGBtoGray tidak ditampilkan.
Pada threshold yang tinggi, hampir tidak tampak perbedaan karena keterbatasan mata, tetapi pada nilai threshold yang kecil seperti 2, 4, 8 dan 16 tampak sekali perbedaannya. Untuk threshold 2, ini sama artinya dengan mengubah citra menjadi citra biner.
3.9. Konversi Ke Citra Biner
Citra biner (hitam-putih) merupakan citra yang banyak dimanfaatkan untuk keperluan pattern recognition yang sederhana seperti pengenalan angka atau pengenalan huruf. Untuk mengubah suatu citra gray scale menjadi citra biner, sebetulnya prosesnya sama dengan threshold yaitu mengubah kuantisasi citra. Untuk citra dengan derajat keabuan 256, maka nilai tengahnya adalah 128 sehingga untuk mengubah menjadi citra biner dapat dituliskan:
Jika x<128 maka x=0, jika tidak maka x=255
Gambar 3.9. Hasil program citra biner
Hasil biner di atas tampak kurang sempurna, hal ini disebabkan distribusi nilai derajat keabuan tidak simetri antara yang dibawah 128 dan yang di atas 128. Untuk itu diperlukan jaminan simetri untuk mendapatkan hasil nilai biner yang baik. Sebelumnya dihitung dulu nilai rata-rata derajat keabuan dan kemudian ditentukan thresholdingnya.
Jika x
Gambar 3.10. Hasil program citra biner dengan rata-rata
Terlihat hasilnya lebih banyak obyek yang dihasilkan, hal ini disebabakan distribusinya dibuat simetri dengan pemakaian rata-rata. Pada gambar 3.6. ini jumlah titik hitam dan jumlah titik putih relatif sama.
BAB IV
OPERASI GLOBAL
4.1. Pengertian Operasi Global
Pada operasi global, proses yang dilakukan bergantung pada karakteristik global dari citra yang hendak dimodifikasi. Karakteristik global tersebut biasanya berupa sifat statistik dari citra itu sendiri, yang direpresentasikan dengan histogram tingkat keabuan.
Sebagian pakar mengelompokkan operasi pengambangan (thresholding) sebagai operasi global, karena pemilihan batas ambang dilakukan dengan menginspeksi histogram tingkat keabuan yang diturunkan secara global (mempertimbangkan keseluruhan titik pada citra tersebut). Namun operasi yang sebenarnya dilakukan adalah secara titik per titik. Sebaliknya, ada yang memasukkan operasi global ini kedalam kelompok operasi titk, karena penerapannya juga dilakukan secara lokal atau titik per titik.
Dalam buku ini, definisi operasi global adalah operasi yang tak bisa tidak, atau harus, bergantung pada sifat global citra. Salah satu operasi global adalah ekualisasi histogram.
4.2. Ekualisasi Histogram
Pada bab sebelumnya, citra yang kurang kontras ditandai dengan sempitnya daerah yang dipakai oleh kurva histogram tingkat keabuan. Dengan operasi peningkatan kontras yang optimal, kurva histogram akan memiliki rentang yang maksimum, dari batas kiri ke batas kanan histogram. Cara lain yang dapat dilakukan untuk mendapatkan kontras yang optimal adalah dengan mendistribusikan kembali nilai-nilai skala keabuan citra untuk memperoleh kurva histogram yang datar atau seragam.
Untuk citra skala keabuan k bit yang berukuran tinggi h dan lebar w, maka jumlah titk untuk setiap tingkat keabuan adalah seragam sebesar (w.h/2). Untuk memperoleh hasil seperti itu, distribusi titk dalam citra asli harus disebarkan secara lebih merata ke seluruh nilai keabuan.
BAB V
OPERASI BERBASIS BINGKAI
5.1. Pengertian Operasi Berbasis Bingkai
Operasi berbasis bingkai (frame) adalah operasi yang melibatkan 2 buah citra atau lebih dan menghasilkan sebuah citra keluaran yang merupakan hasil operasi metematis. Operasi ini dilakukan titk per titik dengan lokasi yang bersesuaian pada citra-citra masukan tersebut. Untuk operasi berbasis bingkai antara 2 buah citra, misalnya antara citra A dan citra B yang menghasilkan citra C, secara umum dapat dituliskan sebagai :
C(x,y) = A(x,y) op B(x,y)
dimana op adalah operator yang akan diterapkan terhadap kedua citra tersebut. Untuk operasi yang melibatkan N buah citra A1 sampai dengan AN, maka rumus diatas menjadi :
C(x,y) = A1(x,y) op A2(x,y) op A3(x,y) ... op AN(x,y)
Berdasarkan operator yang dipakai, operasi berbasis bingkai meliputi operasi aritmatik dan operasi logika.
5.2. Operasi Aritmatik
Operasi aritmatik biasanya diterapkan terhadap citra keabuan dan warna. Berdasarkan operator aritmatik yang umum digunakan, terdapat 4 operasi aritmatik yang dapat dirumuskan sebagai berikut (untuk 2 citra)
C(x,y) = A(x,y) + B(x,y)
C(x,y) = A(x,y) - B(x,y)
C(x,y) = A(x,y) * B(x,y)
C(x,y) = A(x,y) / B(x,y)
Operasi yang banyak digunakan pada berbagai aplikasi ádalah penjumlahan dan pengurangan, sedangkan operasi perkalian dan pembagian hanya digunakan untuk kasus-kasus tertentu.
Contoh aplikasi operasi aritmatik ádalah untuk pengurangan derau (noise), penggabungan citra (image blending), perbaikan ketidak linieran pencahayaan, deteksi gerakan, pembuatan citra diferensi untuk deteksi tepi, serta digital angiography. Operasi pembagian menghasilkan citra rasio yang berguna pada analisis citra warna/multispektral. Operasi perkalian dengan sebuah citra mask menghilangkan bagian tertentu dari citra dan menampakkan hanya obyek yang diinginkan.
5.3. Penggabungan citra (Image blending)
Penggabungan citra dilakukan dengan cara menimpakan (superimpose) sebuah citra pada citra yang lain. Operasi yang sesunguhnya adalah dengan melakukan operasi penjumlahan terhadap citra yang ada dengan bobot masing-masing. Rumus untuk penggabungan 2 buah citra adalah
C(x,y) = wA*A(x,y) + wB*B(x,y)
dengan wA dan wB adalah bobot untuk citra A dan B. Biasanya nilai total dari bobot untuk sebuah lokasi píxel adalah 1 sehingga
wB = 1 - wA
5.4. Deteksi gerakan
Deteksi gerakan (motion detection) secara sederhana dapat dilakukan dengan mencari beda antara 2 buah citra yang berurutan pada hasil pencitraan menggunakan kamera video digital, Operator yang digunakan adalah pengurangan. Operasi pengurangan pada bagian yang tidak bergerak dalam citra akan menghasilkan nilai nol, sedangkan bagian yang bergerak akan memberikan nilai yang tidak nol. Dengan mengevaluasi nilai selisih tersebut, dapat diketahui apakah pada citra terdapat obyek yang bergerak.
5.5. Operasi Logika
Operasi Logika juga dapat dilakukan terhadap 2 atau lebih citra. Beberapa operator logika yang sering dipergunakan adalah :
C(x,y) = A(x,y) AND B(x,y)
C(x,y) = A(x,y) OR B(x,y)
C(x,y) = A(x,y) XOR B(x,y)
C(x,y) = A(x,y) SUB B(x,y)
C(x,y) = NOT A(x,y)
Dengan SUB adalah operasi pengurangan biasa, tetapi jika hasil pengurangan adalah negatif, maka hasilnya diganti dengan 0. Operasi ini dapat dirumuskan sebagai :
BAB VI
OPERASI GEOMETRI
6.1. Pengertian Operasi Geometri
Seperti telah diketahui bahwa karakteristik yang dimiliki oleh setiap píxel dalam statu cerita adalah koordinat dan nilai (keabuan atau warna) dari píxel tersebut. Pada bab-bab sebelumnya, operasi yang dilakukan (operasi titik, global, dan berbasis bingkai) dilakukan terhadap nilai keabuan atau warna piksel yang ada di dalam citra. Secara umum, operasi geometrik dilakukan terutama dengan memodifikasi koordinat piksel dalam statu citra dengan kemungkinan mengubah nilai skala keabuan dari titik tersebut dengan pendekatan tertentu.
Operasi geometrik berhubungan dengan perubahan bentuk geometri citra, yaitu baik ukuran ataupun orientasinya. Operasi geometri di antaranya meliputi pencerminan (flipping), rotasi/pemutaran (rotating), penskalaan (scaling/zooming), dan pembengkokan (warping).
6.2. Transformasi Spasial
Operasi geometrik dilakukan dengan cara memetakan koordinat titik-titik citra asal ke koordinat titik-titik di citra hasil. Pemetaan dilakukan dengan menerapkan fungís transformasi spasial. Secara umum operasi geometrik dapat dirumuskan dengan :
x = fx(x,y)
y = fy(x,y)
Ko(x,y) = Ki(x,y)
di mana :
Ki(x,y) adalah keabuan píxel pada koordinat asal dan Ko(x’,y’) adalah keabuan hasil pada koordinat tujuan.
6.3. Transformasi maju
Citra hasil diperoleh dengan cara menghitung koordinat titik hasil berdasarkan koordinat titik asal menggunakan ketiga persamaan tadi. Metode ini disebut transformasi maju (forward transformation).Perlu diingat bahwa koordinat titik pada citra harus berupa bilangan bulat. Pada waktu dilakukan pemetaan dengan transformasi maju, koordinat titik asal (x,y) yang merupakan bilangan bulat tidak selalu menghasilkan koordinat titik hasil (x’,y’) yang berupa bilangan bulat pula.
Seringkali diperoleh koordinat hasil berupa bilangan pecahan, yaitu bila koordinat hasil pemetaan tersebut jatuh diantara 4 buah titk hasil. Apabila hal itu terjadi, maka nilai keabuan titik asal didistribusikan ke keempat titik pada citra hasil. Pendistribusian nilai keabuan tadi dilakukan dengan aturan interpolasi tertentu. Cara ini sering disebut píxel carry-over. Kelebihan dari metode ini adalah biasanya fungís transformasi yang digunakan untuk suatu operasi geometrik sudah diketahui, jadi penyelesaiannya menjadi lebih mudah.
6.4. Transformasi balik
Pada transformasi ini tiap koordinat titik hasil dipetakan balik untuk mencari titik asalnya. Selanjutnya keabuan titik hasil diisi berdasarkan keabuan titik asalnya. Jika hasil pemetaan balik jatuh diantara 4 titik (nilai x dan y hasil transformasi balik tidak bulat), maka keabuan titik hasil dihitung berdasarkan nilai keabuan keempat titik tadi berdasarkan aturan interpoladi tertentu. Cara ini sering disebut pxel filling. Kelebihan transformasi mundur adalah nilai keabuan titik hasil dapat ditentukan hanya dengan melibatkan sedikit titik asal, sehingga nilainya dapat dihitung tanpa harus memetakan semua titik asal. Sayangnya, fungsi invers diatas pada kasus tertentu tidak mudah untuk diperoleh atau ditentukan dari fungsi transformasi maju yang sudah diketahui.
6.5. Interpolasi nilai keabuan
Pada kedua transformasi diatas seringkali terjadi situasi dimana dari penerapan transformasi spasial diperoleh koordinat titik hasil (pada transformasi maju) maupun titik asal (pada transformasi balik), yang bernilai tidak bulat, padahal koordinat titik harus selalu bernilai bulat Jika demikian maka diperlukan interpolasi untuk menentukan nilai keabuan pada koordinat titik asal. Interpolasi yang sering digunakan adalah intrpolasi tetengga terdekat, bilinier, dn interpolasi dengan orde lebih tinggi.
6.6. Interpolasi tetangga terdekat
Pada interpolasi tetanggga terdekat, nilai keabuan titik hasil diambil dari nilai keabuan pada titik asal yang paling dekat dengan koordinat hasil perhitungan dari transformasi spasial. Untuk citra 2 dimensi, tetangga terdekat dipilih antara 4 titik asal yang saling berbatasan satu sama lain.
Kelebihan dari interpolasi tetangga terdekat adalah kemudahan dan kecepatan eksekusinya. Namun pada banyak kasus, penggunaan interpolasi tetangga terdekat menghasilkan citra yang kurang memuaskan karena timbulnya aliasing pada bagian tepi obyek.
6.7. Interpolasi bilinier
Pada interpolasi bilinier, nilai keabuan dari keempat titik yang bertetangga tadi menberi sumbangan terhadap nilai keabuan hasil, dengan bobot masing-masing yang linier dengan jaraknya terhadap koordinat yang dimaksud. Makin dekat titik tetangga tersebut, makin besar bobotnya, dan sebaliknya makin jauh akan makin kecil bobotnya.
6.8. Perubahan Ukuran Citra
Pada operasi geometri, akibat transformasi spasial yang dilakukan, ukuran citra sangat mungkin berubah. Oleh karena itu ukuran citra harus ditentukan sebelum perhitungan keabuan output dilakukan. Apabila ukuran tidk berubah, maka ada kemungkinan sebagian titik asal dipetakan keluar dari batas citra sehingga tidak nampak pada citra hasil.
6.9. Aplikasi Operasi Geometri
6.9.1. Operasi pencerminan
Operasi Pencerminan merupakan salah satu operasi geometri yang paling sederhana , karena tidak terjadi perubahan ukuran citra dan hasil pemetaan selalu menghasilkan koordinat titik berupa bilangan bulat, sehingga tidak memerlukan interpolasi nilai keabuan.
Efek operasi pencerminan adalah berubahnya orientasi citra baik secara horisontal, vertikal, maupun gabungan keduanya. Pada pencerminan secara horisontal, koordinat y tetap, sedangkan koordinat x dicerminkan. Rumus yang digunakan untuk mencerminkan koordinat x terhadap sumbu y adalah :
x’ = -x
Karena koordinat hasil (x’) bernilai nol atau positif, maka koordinat asal (x) yang diperoleh dari rumus tersebut akan bernilai negatif. Oleh karena itu rumus tersebut dimodifikasi agar x selalu positif. Hal ini dilakukan dengan melakukan pencerminan terhadap garis vertikal di tengah citra (pada koordinat xc)
6.9.2. Operasi cropping
Cropping adalah memotong satu bagian dari citra sehinggga diperoleh citra yang berukuran lebih kecil. Operasi ini pada dasarnya adalah operasi translasi, yaitu menggeser koordinat titik citra. Rumus yang digunakan untuk operasi ini adalah :
x’ = x – xL untuk x = xL sampai xR
y’ = y – yL untuk y = xT sampai xB
(xL,yT) dan (xR,yB), masing-masing adalah koordinat titik pojok kiri atas dan pojok kanan bawah bagian citra yang hendak di-crop.
Ukuran citra berubah menjadi
h’ = yB - yT
dan transformasi baliknya adalah ;
x = x’ + xL untuk x’ = 0 sampai w’-1
y = y’ + xT untuk y = 0 sampai h’-1
6.9.3. Operasi penskalaan (scaling)
Operasi penskalaan (scaling) dimaksudkan untuk memperbesar atau memperkecil citra. Hal ini dapat dilakukan dengan mengintroduksi parameter skala, baik kearah horisontal (Sh) maupun vertikal (Sv). Skala yang bernilai lebih dari 1 akan memperkecil citra. Apabila aspect ratio (perbandingan antara tinggi dan lebar citra) hendak dipertahankan, maka dipilih Sh = Sv. Transformasi spasial yang dipakai adalah
x’ = Shx
y’ = Svy
6.9.4. Operasi rotasi bebas
Operasi rotasi dengan sudut putar tidak tepat pada kelipatan 90o tidak sama dengan operasi ¼ dan ½ putaran yang sudah dibahas pada sub bab sebelumnya. Jika pada operasi rotasi sebelumnya, titik asal yang diperoleh dari transformasi balik selalu berupa bilangan bulat, pada operasi dengan sudut bebas, kemungkinan besar titik asal tidak bulat. Oleh karena itu perlu dilakukan interpolasi. Pada dasarnya, operasi ini sama dengan operasi penskalaan. Perbedaannya adalah pada pesamaan transformasi spasial yang digunakan. Transformasi maju yang digunakan untuk operasi rotasi adalah :
6.9.5. Operasi skew
Operasi skew (pendoyongan atau affine) dipergunakan untuk memperbaiki kemiringan citra. Operasi skew kearah horisontal sebenarnya adalah penggeseran baris-baris pada citra denga besar pergeseran yang berubah secara gradual. Pergeseran maksimum terjadi pada bagian bawah citra, sedangkan pergeseran pada baris tengah adalah proporsional terhadap posisi vertikalnya. Operasi ini hanya mengubah ukuran lebar citra, sedangkan tinggi citra tetap. Lebar cita bertambah sebesar pergeseran maksimum yang dilakukan.
BAB VII
APLIKASI OPERASI BERTETANGGA
7.1. Penghalusan Citra
Dapat dilakukan dengan memberi nilai yang sama pada semua bobot mask yang digunakan. Operasi ini dapat pula digunakan untuk menghilangkan derau yang timbul saat proses pencitraan
7.2. Pendeteksian Tepi
Digunakan untuk menentukan lokasi titik-titk yang merupakan tepi obyek. Dimana tepi obyek dinyatakan sebagai titik yang nilai keabuannya berbeda cukup besar dengan titik yang ada disebelahnya. Bentuk mask yang bisa digunakan dalam operasi ini antara lain :
Operator Robert, Prewitt, Sobel, Canny, Laplacian, dan Laplacian of Gaussian. Konvolusi dengan mask tersebut dipakai untuk menghitung nilai keabuan atau warna hasil.
7.2.1. Pendeteksian tepi menggunakan operator gradien
Pendeteksian tepi dapat dilakukan dengan menghitung selisih atau diferensi antara 2 buah titik yang bertetangga sehingga diperoleh nilai gradien (turunan pertama) citra.
Diferensi diambil secara diagonal untuk mendapatkan mask yang berbentuk bujur sangkar, dan diperoleh 2 mask mengakomodasi kedua arah diagonal. Hasil konvolasi citra asal dengan kedua mask tersebut kemudian digabungkan dengan cara tertentu sehingga menghasilkan nilai yang dapat digunakan untuk menentukan apakah sebuah titik merupakan tepi obyek dalam citra atau bukan.
7.2.2. Penajaman Citra (Sharping)
Karena Laplacian merupakan operator derivatif, penggunaannya akan menonjolkan ketidak sinambungan dalam citra yang terjadi pada tepi obyek. Oleh karena itu, operasi ini dapat dimanfaatkan untuk meningkatkan tepi obyek sehingga citra berkesan menjadi lebih tajam.
Operasi penajaman citra pada dasarnya adalah penjumlahan atas citra tepi (hasil dari deteksi tepi diatas) dengan citra aslinya. Dengan demikian bagian tepi obyek akan terlihat lebih berbeda dengan latarnya, sehingga citra terkesan lebih tajam. Disini banyaknya penambahan komponen citra tepi diatur dengan suatu nilai derajat penajaman. Sehingga dengan mengatur nilai derajat penajaman, tingkat ketajaman citra dapat disesuaiakan dengan keinginan kita.
Daftar Pustaka
1. Aniati murni Arymurthy & Suryana Setiawan, Pengantar Pengolahan Citra, Elex Media Komputindo, 1992
2. Gonzales, Rafael C., Digital Image Processing, Second Edition, Addison-wesley publishing, 1992
3. Jain, Anil K., Fundamentals of Digital Image Processing, Prentice Hall international, 1989
4. Rinaldi Munir, Pengolahan Citra digital dengan Pendekatan Algoritmik, Penerbit Informatika Bandung, 2004
5. Willey, Digital Image Processing, 3rd edition, 2001
kerennn
BalasHapus