Belajar Pengolahan Citra Digital dengan Matlab
Sinopsis Buku Pengolahan Citra Digital dengan Matlab
Contents
Buku ini disajikan sesuai kebutuhan untuk mempelajari pengolahan citra digital dengan Matlab yang merupakan kelanjutan dari buku dasar-dasar pemrograman matlab. Pengolahan citra digital / digital image processing dengan penerapannya dengan istilah Computer Vision. Ilmu dasar pengolahan citra digital yaitu matematika numerik, statistika terapan, serta array yang kalian bisa pelajari di www.softscients.web.id karena semua harus menggunakan bahasa pemrograman (repot kalau pakai excel).
Buku Pengolahan Citra Digital dengan Matlab ditulis secara berjenjang dari dasar sampai tingkat lanjut mengingat para pengolahan citra digital bisa dari orang awam sampai mahasiswa sehingga untuk memudahkan penerapan pengolahan citra digital lebih mudah menggunakan bahasa functional seperti Matlab, Octave, Python, Scilab, Scala.
Pemilihan Matlab sebagai tools pengolahan citra digital karena beberapa hal utama yaitu
- Core engine berbasis array
- Core engine Visualisasi yang sangat baik sekali
- Tersedianya Toolbox Digital Image Proccesing yang siap pakai.
- Dasar-dasar Citra Digital
- Toolbox Digital Image Processing di Matlab
- Menampilkan Gambar dan Menyimpan Gambar, array – Image
- Mengubah format
Daftar Isi
- Deteksi Tepi
- Operasi Morfologi
- Enhancement
- Operasi Segmentasi Citra
- Membuat Rectangle ROI
- Konvert RBG to Lab
- Enkripsi Citra Digital dengan logistic Maps- Random Generator
- Penggunaan HaarCascade Classifier untuk Face Detection
- Integral Image pada Viola Jones
- Retina blood vessel segmentation
- Orientation estimation – fingerprint image
- Text Line Extraction
- Optical Character Recognition
- Simple Character Recognition dengan Principal Component Analyst
- Aplikasi Optical Character Recognition dengan Matlab
- Move Object to Center
- Kumpulan Dataset untuk Studi Kasus
Dasar-Dasar Citra Digital
Sejak dikenalnya komputer untuk pengolahan data digital telah merevolusi beberapa aspek seperti gambar dan sinyal yang memunculkan cabang ilmu yaitu Pengolahan Citra Digital / Digital Image Processing / DIP dan Pengolahan Sinyal Digital / Digital Signal Processing / DSP. Secara umum beberapa hal dasar yang harus kalian tahu mengenai pengolahan citra digital yaitu
- Range Warna / Kedalam Warna / Depth
- Resolusi/Kerapatan/Kuantisasi
- Ruang warna
- Serta format penyimpanan
- Format truecolor dan grayscale
Depth Color
Artinya kalian bisa membedakan warna dari skala 0 sampai dengan 255, kalau lebih mudahnya bagi manusia membedakan warna dengan sebutan yaitu merah pekat, merah mudah, merah marun, dan merah sekali. Kalau komputer tidak demikian, lebih menggunakan angka saja. Bahkan ada yang bisa menyediakan 16 juta warna lho yang tidak mungkin dibedakan oleh mata manusia. Secara umum cukuplah warna 256 saja atau bahkan kalau komputer dalam kasus tertentu (machine learning) hanya butuh 2 warna saja (binary) yaitu 0 bersifat hitam dan 1 bersifat putih. Jadi kalian jangan bingung ya kalau ada yang menyebut depth range, kedalaman warna sebesar 255 atau 2^8 yang biasa disimpan dalam format type data primitive uint8 (un signed integer 8 bit).
Resolusi/Kerapatan/Kuantisasi
Ruang warna
Warna yang kita kenal ada 7 warna tapi dari 7 warna tersebut terdapat 3 warna dasar (red, green, dan blue) yang dari 3 warna tersebut ada 2 warna utama yaitu hitam dan putih. Maksudnya adalah 7 warna didapatkan dengan mengubah nilai dari campuran red, green, dan blue disebut RGB/BGR. Sedangkan nilai red, green, dan blue bila dibuat nol nilainya akan menghasilkan warna hitam dan sebaliknya akan menghasilkan warna putih. Walapun demikian ada 2 ruang warna lagi yang disajikan oleh komputer yaitu HSV dan Lab.
Toolbox Digital Image Processing
Kalian pastikan dulu Matlab yang terinstall sudah ada toolbox Digital Image Proccesingnya atau belum dengan perintah ver()
>> ver ----------------------------------------------------------------------------------------------------- MATLAB Version: 9.4.0.813654 (R2018a) MATLAB License Number: 968398 Operating System: Microsoft Windows 10 Home Single Language Version 10.0 (Build 17763) Java Version: Java 1.8.0_144-b01 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode ----------------------------------------------------------------------------------------------------- MATLAB Version 9.4 (R2018a) Simulink Version 9.1 (R2018a) Aerospace Blockset Version 3.21 (R2018a) Aerospace Toolbox Version 2.21 (R2018a) Antenna Toolbox Version 3.1 (R2018a) Audio System Toolbox Version 1.4 (R2018a) Automated Driving System Toolbox Version 1.2 (R2018a) Bioinformatics Toolbox Version 4.10 (R2018a) Communications System Toolbox Version 6.6 (R2018a) Computer Vision System Toolbox Version 8.1 (R2018a) Control System Toolbox Version 10.4 (R2018a) Curve Fitting Toolbox Version 3.5.7 (R2018a) DO Qualification Kit Version 3.5 (R2018a) DSP System Toolbox Version 9.6 (R2018a) Data Acquisition Toolbox Version 3.13 (R2018a) Database Toolbox Version 8.1 (R2018a) Datafeed Toolbox Version 5.7 (R2018a) Econometrics Toolbox Version 5.0 (R2018a) Embedded Coder Version 7.0 (R2018a) Filter Design HDL Coder Version 3.1.3 (R2018a) Financial Instruments Toolbox Version 2.7 (R2018a) Financial Toolbox Version 5.11 (R2018a) Fixed-Point Designer Version 6.1 (R2018a) Fuzzy Logic Toolbox Version 2.3.1 (R2018a) GPU Coder Version 1.1 (R2018a) Global Optimization Toolbox Version 3.4.4 (R2018a) HDL Coder Version 3.12 (R2018a) HDL Verifier Version 5.4 (R2018a) IEC Certification Kit Version 3.11 (R2018a) Image Acquisition Toolbox Version 5.4 (R2018a) Image Processing Toolbox Version 10.2 (R2018a) Instrument Control Toolbox Version 3.13 (R2018a) LTE HDL Toolbox Version 1.1 (R2018a) LTE System Toolbox Version 2.6 (R2018a) MATLAB Coder Version 4.0 (R2018a) MATLAB Compiler Version 6.6 (R2018a) MATLAB Compiler SDK Version 6.5 (R2018a) MATLAB Distributed Computing Server Version 6.12 (R2018a) MATLAB Report Generator Version 5.4 (R2018a) Mapping Toolbox Version 4.6 (R2018a) Model Predictive Control Toolbox Version 6.1 (R2018a) Model-Based Calibration Toolbox Version 5.4 (R2018a) Neural Network Toolbox Version 11.1 (R2018a) OPC Toolbox Version 4.0.5 (R2018a) Optimization Toolbox Version 8.1 (R2018a) Parallel Computing Toolbox Version 6.12 (R2018a) Partial Differential Equation Toolbox Version 3.0 (R2018a) Phased Array System Toolbox Version 3.6 (R2018a) Polyspace Bug Finder Version 2.5 (R2018a) Polyspace Code Prover Version 9.9 (R2018a) Powertrain Blockset Version 1.3 (R2018a) Predictive Maintenance Toolbox Version 1.0 (R2018a) RF Blockset Version 7.0 (R2018a) RF Toolbox Version 3.4 (R2018a) Risk Management Toolbox Version 1.3 (R2018a) Robotics System Toolbox Version 2.0 (R2018a) Robust Control Toolbox Version 6.4.1 (R2018a) Signal Processing Toolbox Version 8.0 (R2018a) SimBiology Version 5.8 (R2018a) SimEvents Version 5.4 (R2018a) Simscape Version 4.4 (R2018a) Simscape Driveline Version 2.14 (R2018a) Simscape Electronics Version 2.13 (R2018a) Simscape Fluids Version 2.4 (R2018a) Simscape Multibody Version 5.2 (R2018a) Simscape Power Systems Version 6.9 (R2018a) Simulink 3D Animation Version 8.0 (R2018a) Simulink Check Version 4.1 (R2018a) Simulink Code Inspector Version 3.2 (R2018a) Simulink Coder Version 8.14 (R2018a) Simulink Control Design Version 5.1 (R2018a) Simulink Coverage Version 4.1 (R2018a) Simulink Design Optimization Version 3.4 (R2018a) Simulink Design Verifier Version 3.5 (R2018a) Simulink Desktop Real-Time Version 5.6 (R2018a) Simulink PLC Coder Version 2.5 (R2018a) Simulink Real-Time Version 6.8 (R2018a) Simulink Report Generator Version 5.4 (R2018a) Simulink Requirements Version 1.1 (R2018a) Simulink Test Version 2.4 (R2018a) Spreadsheet Link Version 3.3.3 (R2018a) Stateflow Version 9.1 (R2018a) Statistics and Machine Learning Toolbox Version 11.3 (R2018a) Symbolic Math Toolbox Version 8.1 (R2018a) System Identification Toolbox Version 9.8 (R2018a) Text Analytics Toolbox Version 1.1 (R2018a) Trading Toolbox Version 3.4 (R2018a) Vehicle Dynamics Blockset Version 1.0 (R2018a) Vehicle Network Toolbox Version 4.0 (R2018a) Vision HDL Toolbox Version 1.6 (R2018a) WLAN System Toolbox Version 1.5 (R2018a) Wavelet Toolbox Version 5.0 (R2018a)
Membaca dan Menyimpan Gambar
Kalian bisa menggunakan perintah imfinfo untuk menampilkan informasi gambar
clc;clear all;close all; imfinfo('panoramic.jpg')
ans = struct with fields: Filename: 'Digital dengan Matlab\panoramic.jpg' FileModDate: '14-Jan-2020 07:48:24' FileSize: 94776 Format: 'jpg' FormatVersion: '' Width: 800 Height: 296 BitDepth: 24 ColorType: 'truecolor' FormatSignature: '' NumberOfSamples: 3 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: {} Orientation: 1
Ataupun membaca gambar dengan perintah imread dan menampilkannya kedalam figure
I = imread('panoramic.jpg'); figure imshow(I);
Dengan perintah whos kalian mendapatkan informasi array dari gambar yaitu
>> whos Name Size Bytes Class Attributes I 296x399x3 354312 uint8
Artinya array berukuran 3 dimensi / 3 layer dengan masing-masing layer terdiri 296 baris dan 399 kolom dengan type data primitive yaitu uint8. Kalian bisa melihat value pixel (picture element) menggunakan perintah imtool()
imtool(I)
Dengan toolbar Inspect Pixel Value akan menampilkan posisi (X,Y) dari sebuah pixel gambar seperti contoh diatas artinya adalah koordinat x = 212; y = 129 dengan nilai pixel R=125; G=164; B=184
Pada sesi ini kalian sudah mengetahui cara menampilkan gambar dari sebuah file/disk, selanjutnya untuk menyimpan gambar menggunakan perintah imwrite(), misalkan untuk menyiman gambar dalam format *.jpg yaitu
imwrite(I,'D:/gambar.jpg','jpg')
Format data primitve Gambar dalam Matlab uint8, logical, dan double
Secara umum Matlab menyimpan/memproses sebuah gambar dalam 3 tipe data yaitu
- Uint8: unsigned integer 8 bit yaitu bilangan bulat positif 0 s.d 255
- Logical yaitu 1 dan 0
- Double yaitu bilangan real dari 0 s.d 1
Kalian harus pelajari dulu ya mengenai array dan grafik jika masih belum paham kode dibawah ini
clc;clear all;close all; a = uint8(repmat([0:255],200,1)); b = logical([zeros(200,50),ones(200,50)]); c = double(repmat([0:0.01:1],200,1)); figure subplot(1,3,1),imshow(a) title('gradasi warna') subplot(1,3,2),imshow(b) title('hitam putih') subplot(1,3,3),imshow(c) title('Gradasi Warna')
Tapi secara umum kita akan banyak menggunakan type data uint8 kecuali untuk analisis morfologi yang menggunakan type data logical
Jenis Format Gambar yang didukung oleh Matlab
Format citra digital alias encoding format oleh komputer ada banyak sekali, dengan beragam lisensi ataupun yang terbuka, adapun jenis format gambar yang didukung oleh Matlab bisa kalian pelajari dibawah ini.
• Gray-scale images
• Binary images
• Indexed images
• RGB images
Aspek Pengolahan Citra Digital
Secara umum ada beberapa hal yang dilakukan berkenaan dengan pengolahan citra digital yaitu
- Image Enhancement biasa disebut operasi peningkatan kualitas gambar seperti mempertajam atau menghilangkan gambar yang tidak fokus, pengubahan kontras, menghilangan noise.
- Image Restoration biasa disebut restorasi gambar dikarenakan ada kerusakan yang telah diketahui sebelumnya.
- Image segmentation biasa disebut klustering yang pengelompokan gambar menjadi bagian-bagian penyusunnya, atau mengisolasi aspek-aspek tertentu dari suatu gambar.
- Recognition and interpretation dalam hal ini lebih kepada computer vision dan machine learning yaitu operasi temu kembali agar komputer dapat mengenali objek dengan baik
Ke 4 point diatas bisa kalian pelajari melalui matematika seperti matematika numerik, array, statistika yang diimplementasikan menggunakan bahasa pemrograman