×

Belajar Pengolahan Citra Digital dengan Matlab

Belajar Pengolahan Citra Digital dengan Matlab

6,200 Views

Sinopsis Buku Pengolahan Citra Digital dengan Matlab

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

  1. Core engine berbasis array
  2. Core engine Visualisasi yang sangat baik sekali
  3. Tersedianya Toolbox Digital Image Proccesing yang siap pakai.
Dengan 3 hal utama diatas kalian akan sangat terbantu dari segi bahasa dan ketersediaan tools yang lengkap. Berikut point-point yang dibahas dalam buku ini.
  1. Dasar-dasar Citra Digital
  2. Toolbox Digital Image Processing di Matlab
  3. Menampilkan Gambar dan Menyimpan Gambar, array – Image
  4. Mengubah format

Daftar Isi

  1. Deteksi Tepi
    1. Deteksi Tepi / Edge Detection
    2. Deteksi Tepi dengan Algoritma Trace Boundary
  2. Operasi Morfologi
    1. Center Of Gravity dan Orientation Image
    2. Morfologi Dilation Erotion Opening Closing
    3. Penggunaan Function Filtering imfilter dan conv2
  3. Enhancement
    1. Enhancement Histogram Equalization untuk Format True Color
    2. Perbaikan Kualitas Citra Enhancement
    3. Kode Matlab untuk Menghitung Histogram Equalization
  4. Operasi Segmentasi Citra
  5. Membuat Rectangle ROI
  6. Konvert RBG to Lab
  7. Enkripsi Citra Digital dengan logistic Maps- Random Generator
  8. Penggunaan HaarCascade Classifier untuk Face Detection
  9. Integral Image pada Viola Jones
  10. Retina blood vessel segmentation
  11. Orientation estimation – fingerprint image
  12. Text Line Extraction
  13. Optical Character Recognition
    1. Simple Character Recognition dengan Principal Component Analyst
    2. Aplikasi Optical Character Recognition dengan Matlab
  14. Move Object to Center
  15. 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

  1. Range Warna / Kedalam Warna / Depth
  2. Resolusi/Kerapatan/Kuantisasi
  3. Ruang warna
  4. Serta format penyimpanan
  5. Format truecolor dan grayscale

Depth Color

Secara umum dan bahkan kedalam warna yang digunakan oleh vendor perangkat lunak yaitu kedalam warna 256 bit biasa disingkat dengan 2^8.

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

Nah istilah ini yang kadang suka ditukar-tukar dengan depth range padahal merupakan istilah yang berbeda. Kuantisasi berkenaan dengan mengubah data analog menjadi data digital atau diskret karena komputer berisifat diskrit tidak seperti otak manusia yang bersifat kontinue. Penulis sebut istilah resolusi/kerapatan/kuantisasi dengan satuan DPI atau dot per inchi.
Banyaknya titik dalam sebuah luasan area, kalau kalian bingung anggap saja kalian sedang merajut sebuah emblem di renda. Titik-titik itulah lubangnya yang biasa disebut dengan Pixel alias picture element satuan terkecil dari sebuah digital image. Resolusi umum yang digunakan yaitu 72 DPI yang semakin besar nilai DPI nya akan semakin halus.

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

  1. Uint8: unsigned integer 8 bit yaitu bilangan bulat positif 0 s.d 255
  2. Logical yaitu 1 dan 0
  3. 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.

Secara umum terbagi menjadi 4 type Image Type yang disupoort oleh Matlab yaitu
•     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

  1. Image Enhancement biasa disebut operasi peningkatan kualitas gambar seperti mempertajam atau menghilangkan gambar yang tidak fokus, pengubahan kontras, menghilangan noise.
  2. Image Restoration biasa disebut restorasi gambar dikarenakan ada kerusakan yang telah diketahui sebelumnya.
  3. Image segmentation biasa disebut klustering yang pengelompokan gambar menjadi bagian-bagian penyusunnya, atau mengisolasi aspek-aspek tertentu dari suatu gambar.
  4. 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

You May Have Missed