Jumat, 11 Januari 2013

PENGANTAR PENGOLAHAN CITRA

2.1 Pengantar Citra
Citra disebut juga dengan gambar atau image.  Beberapa defenisi dari citra adalah
1.              Citra (Image) merupakan gambar pada bidang 2(dua)  dimensi.
2. Citra (ditinjau dari sudut pandang matematis) merupakan fungsi yang kontinu dari intensitas cahaya pada bidang 2 (dua) dimensi.
3. Citra merupakan sumber cahaya menerangi objek dan dipantulkan kembali dan di tangkap oleh alat-alat optik misalnya mata manusia, kamera scanner, sensor, satelit dan sebagainya kemudian direkam.
Citra sebagai keluaran dari sistem perekam data dapat bersifat :
     1. optik atau photo
     2. analog berupa sinyal video seperti tampilan gambar pada monitor televisi
     3. digital dapat disimpan langsung pada media perekam magnetik
Citra juga dapat dikelompokkan menjadi dua bagian yaitu :
 1. Citra tampak (photo, gambar, lukisan, apa yang ta,pak dilayar monitor/televisi, hologram dll).
2. Citra tidak tampak (data pada photo/gambar pada file, citra yang direpresentasikan dalam fungi matematis).
          Citra digital adalah citra yang disimpan dalam format digital (dalam bentuk file). Hanya citra digital yang dapat diolah menggunakan komputer. Untuk citra non digital sebelum diolah harus dirobah dulu kedalam citra digital.
Pencitraan (Imaging) adalah merupakan kegiatan mengubah informasi dari citra tampak atau citra non digital menjadi citra digital. Beberapa alat uang dapat digunakan untuk pencitraan adalah scanner, kamera digital dll.
          Pengolahan Citra  adalah kegiatan memproses suatu citra sehingga menghasilkan citra yang sesuai dengan keinginan kita atau kualitasnya menjadi lebih baik.
Contoh :
                          
            a. Citra Lena agak kabur                     b) Citra Lena yang diperbaiki
Umumnya, operasi-operasi pengolahan citra diterapkan pada citra bila :
1.  Perbaikan atau modifikasi citra untuk meningkatkan kualitas visual atau menonjolkan beberapa aspek informasi yang terkandung dalam citra.
2.    Elemen di dalam citra perlu di kelompokkan, dicocokkan atau diukur.
3.    Sebagian citra perlu di gabung dengan bagian citra yang lain.
Terdapat empat kelompok algoritma dasar pengolahan citra :
          1. Kelompok Titik (mengubah nilai pixel berdasarkan nilai pixel yang asli)
2. Kelompok Bidang (mengubah nilai poxel berdasar nilai pixel aslinya dan berdasarkan nilai pixel tetangganya
3. Kelompok Geometris (mengubah posisi atau susunan pixel)
4. Kelompok Frame (membangkitkan nilai-nilai pixel berdasarkan operasi-operasi pada pada 2 citra atau lebih
          Analisis Citra merupakan kegiatan menganalisis sehingga menghasilkan informasi untuk menetapkan keputusan (biasanya didampingi bidang ilmu kecerdasan buatan / artificial intelligent yaitu pengenalan pola (pattern recognition) menggunakan jaringan syaraf tiruan, fuzzy logic dll.
 

Dalam bidang komputer ada tiga bidang studi yang berkaitan dengan citra dengan tujuan yang berbeda yaitu :
-  Grafika Komputer (Computer Graphic)
-  Pengolahan Citra (Image Processing)
-  Pengenalan Pola (Pattern Reconition/Image Interpretation)


 

Computer Vision
Computer Vision mencoba meniru Human Vision. Computer Vision merupakan  proses otomatis yang mengintegrasikan sejumlah besar proses untuk persepsi visual, seperti :
 Akuisisi citra
 Pengolahan citra
 Klasifikasi
 Pengenalan (Recognition)
 Membuat Keputusan.
Vision = Geometry + Measurement + Interpretation
Proses-proses dalam computer vision dapat dibagi menjadi 3 aktivitas :
1. Memperoleh atau mengakuisisi citra digital
2. Melakukan teknik komputasi untuk memproses atau memodifikasi data citra (operasi-operasi pengolahan citra)
3. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya mengontrol peralatan, memantau proses manufaktur, memandu robot, dll.
Aplikasi Pengolahan Citra
1. Bid.Perdagangan
a. Pembacaan barcode
b. Pengenalan huruf/angka pada suatu formulir secara otomatis
2. Bid.Militer
a. Mengenali sasaran peluru kendali melalui sensor visual
b. Mengidentifikasi jenis pesawat musuh
3. Bid.Kedokteran
a. Mammografi
b. Rekontruksi foto janin hasil USG
4. Bid.Biologi
a. Pengenalan jenis kromosom melalui citra mikroskopik
5. Komunikasi Data
a. Kompresi citra yang akan ditransmisikan
6. Hiburan
a. Game
b. Kompresi Video
7. Robotika
a. Visualy-Guided autonomous navigation
8. Pemetaan
a. Klasifikasi penggunaan tanah melalui foto udara/LANDSAT
9. Geologi
a. Mengenali jenis batu-batuan melalui foto udara/LANDSAT
10. Hukum
a. Pengenalan sidik jari
b. Pengenalan foto narapidana
3.2 Pengolahan Citra Digital menggunakan Matlab
3.2.1  Citra Digital
Sebuah citra digital adalah kumpulan piksel-piksel yang disusun dalam larik dua dimensi. Indeks baris dan kolom (x,y) dari sebuah piksel yang dinyatakan dalam bilangan bulat dan nilai-nilai tersebut mendefinisikan suatu ukuran intensitas cahaya pada titik tersebut. Satuan atau bagian terkecil dari suatu citra disebut piksel (picture element).
Umumnya citra dibentuk dari persegi empat yang teratur sehingga jarak horizontal dan vertikal antara piksel satu dengan yang lain adalah sama pada seluruh bagian citra. Piksel (0,0) terletak pada sudut kiri atas pada citra, dimana indeks x bergerak ke kanan dan indeks y bergerak ke bawah. Untuk menunjukkan koordinat (m-1,n-1) digunakan posisi kanan bawah dalam citra berukuran m x n pixel. Hal ini berlawanan untuk arah vertikal dan horizontal yang berlaku pada sistem grafik dalam matematika.
Video sebenarnya juga merupakan salah satu bentuk dari citra digital. Video merupakan kumpulan dari beberapa frame dari citra digital. Satu frame merupakan satu citra digital. Oleh karena itu, apabila pada video mempunyai satuan yang menyatakan 12 fps(frame per second) artinya bahwa video tersebut memainkan 12 frame/citra digital dalam tiap detiknya.
2.2.2  Membaca File Citra Digital di Matlab dan Menampilkannya
Citra RGB
Suatu citra biasanya mengacu ke citra RGB. Sebenarnya bagaimana citra disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi televisi, yang pertama kali mengaplikasikannya untuk tampilan grafis komputer. Jika dilihat dengan kaca pembesar, tampilan monitor komputer akan terdiri dari sejumlah triplet titik warna merah (RED), hijau (GREEN) dan biru (BLUE). Tergantung pada pabrik monitornya untuk menentukan apak titik tersebut merupakan titik bulat atau kotak kecil, tetapi akan selalu terdiri dari 3 triplet red, green dan blue.
Citra dalam komputer tidak lebih dari sekumpulan sejumlah triplet dimana setiap triplet terdiri atas variasi tingkat keterangan (brightness) dari elemen red, green dan blue. Representasinya dalam citra, triplet akan terdiri dari 3 angka yang mengatur intensitas dari Red (R), Green (G) dan Blue (Blue) dari suatu triplet. Setiap triplet akan merepresentasikan 1 pixel (picture element). Suatu triplet dengan nilai 67, 228 dan 180 berarti akan mengeset nilai R ke nilai 67, G ke nilai 228 dan B k nilai 180. Angka-angka RGB ini yang seringkali disebut dengan color values. Pada format .bmp citra setiap pixel pada citra direpresentasikan dengan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B, dengan pengaturan seperti pada gambar berikut:
Dalam Matlab, citra digital direpresentasikan dalam matriks berukuran m x n sesuai dengan ukuran m x n ukuran citra digital dalam pixel. Jadi setiap pixel dari citra digital diwaklili oleh sebuah matriks berukuran 1x1 apabila citra tersebut berupa citra Grayscale atau citra Biner, dan 3 matriks apabila citra digital berupa citra RGB. Misalkan kita punya citra digital berukuran 640x480 pixel, maka sebenarnya citra tersebut diwakili oleh matriks berukuran 640x480.
Untuk membaca sebuah file citra di Matlab, maka digunakan perintah :
A=imread(’nama_File’)
dengan syarat file yang dibaca berada pada direktori yang aktif. File yang dibaca kemudian disimpan dalam variabel "A" dalam bentuk matriks penyusun citra. Sedangkan untuk menampilkan file citra yang telah dibaca digunakan perintah :
imshow(A)
"A" merupakan variabel tempat menyimpan matriks penyusun citra yang telah dibaca sebelumnya. Untuk mempermudah pemahaman, akan langsung digunakan contoh. Misalkan kita akan membaca sebuah file citra dengan nama file "logopnp.jpg", kemudian akan langsung ditampilkan.
clc;
clear;
A=imread(’logopnp.jpg’); %Membaca file citra
imshow(A)%Menampilkan file citra
Hasil Running Programnya sebagai berikut :
Untuk contoh kedua, kita masih akan membaca file yang sama, akan tetapi kali ini akan diambil masing - masing matriks penyusun citra (matriks R, matriks G, dan Matriks B) karena memang file yang dibaca adalah gambar RGB (berwarna). Semua matriks ini kemudian akan ditampilkan ke dalam 1 figure (plot). Berikut ini adalah listing programnya yang ditulis dalam M-File.
clc;
clear;
A=imread('logopnp.jpg');%Membaca file citra
red=A(:,:,1);%Mengambil matriks penyusun citra merah
green=A(:,:,2);%Mengambil matriks penyusun citra hijau
blue=A(:,:,3);%Mengambil matriks penyusun citra biru
subplot(2,2,1)
imshow(A),title('Logo PNP')
subplot(2,2,2)
imshow(red),title('Logo PNP-Merah')
subplot(2,2,3)
imshow(green),title('Logo PNP-Hijau')
subplot(2,2,4)
imshow(blue),title('Logo PNP-Biru')
Hasil running-nya adalah sebagai berikut :
Untuk membaca file citra yang berbeda direktori dengan direktori yang aktif adalah dengan menuliskan direktori tempat file berada + nama_file. Misalkan filenya berada pada direktori "D:/Picture", maka tinggal ditulis saja :
A=imread(’D:/Picture/logopnp.jpg’)
Pengolahan citra tersebut antara lain :
1. Grayscaling
Grayscalling adalah teknik yang digunakan untuk mengubah citra berwana (RGB) menjadi bentuk grayscale atau tingkat keabuan (dari hitam ke putih). Dengan pengubahan ini, matriks penyusun citra yang sebelumnya 3 matriks akan berubah menjadi 1 matriks saja. Pengubahan dari citra berwarna ke bentuk grayscale biasanya mengikuti aturan sebagai berikut :
  ................................        (1.1)
dimana :
I(i, j) = Nilai intensitas citra grayscale
R(i, j) = Nilai intensitas warna merah dari citra asal
G(i, j) = Nilai intensitas warna hijau dari citra asal
B(i, j) = Nilai intensitas warna biru dari citra asal
Dalam komputasi, suatu citra digital grayscale atau greyscale adalah suatu citra dimana nilai dari setiap pixel merupakan sample tunggal. Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada bagian yang intensitas terlemah dan warna putih pada intensitas terkuat. Citra grayscale berbeda dengan citra ”hitam-putih”, dimana pada konteks komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja.
Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna diantaranya sangat banyak. Citra grayscale seringkali merupakan perhitungan dari intensitas cahaya pada setiap pixel pada spektrum elektromagnetik single band . Citra grayscale disimpan dalam format 8 bit untuk setiap sample pixel, yang memungkinkan sebanyak 256 intensitas. Format ini sangat membantu dalam pemrograman karena manupulasi bit yang tidak terlalu banyak. Pada aplikasi lain seperti pada aplikasi medical imaging dan remote sensing biasa juga digunakan format 10,12 maupun 16 bit.
2. Binerisasi Citra
Binerisasi citra merupakan proses merubah citra ke dalam bentuk biner (0 dan 1). Dengan merubah ke bentuk biner, citra hanya akan mempunyai 2 warna yakni hitam dan putih. Dengan proses ini, citra RGB juga akan menjadi 1 matriks penyusun saja.
Citra biner(binary image) adalah citra yang setiap pikselnya hanya memiliki 2 kemungkinan derajat keabuan yakni 0 dan 1.
                        Proses pembineran dilakukan dg membulatkan keatas atau kebawah untuk setiap nilai keabuan dari piksel yg berada diatas atau bawah harga ambang. Metode untuk menentukan besarnya harga ambang disebut 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 dapat digunakan rumus:
                   .....................................................................        (1.2)
dimana :
w adalah nilai derajat keabuan sebelum thresholding
x adalah nilai derajat keabuan setelah thresholding
                 ........................................................................        (1.3)
3. Filtering Citra
Filtering adalah suatu proses dimana diambil sebagian sinyal dari frekwensi tertentu dan membuang sinyal pada frekwensi yang lain. Filtering pada citra juga menggunakan prinsip yang sama, yaitu mengambil fungsi citra pada frekwensi – frekwensi tertentu dan membuang fungsi citra pada frekwensi - frekwensi tertentu juga. Di Matlab, untuk bisa melakukan filtering kita bisa menggunakan fungsi :
h = fspecial(type)
h = fspecial(type, parameters)
Untuk type-nya kita bisa menggunakan :
• ’average’ : adalah untuk filter rata - rata.
• ’disk’ : adalah untuk filter rata - rata lingkaran.
• ’gaussian’ : adalah untuk gaussian lowpass filter.
• ’laplacian’ : adalah untuk memperkirakan operator laplace 2-D.
• ’log’ : adalah untuk Laplacian of Gaussian filter
• ’motion’ : adalah untuk memperkirakan gerak linier kamera.
• ’prewitt’ : adalah untuk filter edge Prewitt.
• ’sobel’ : adalah untuk filter edge Sobel.
• ’unsharp’ : adalah untuk Unsharp contrast enhancement filter.
4. Menambahkan Gangguan (Noise) pada Citra
Untuk bisa menambahkan gangguan (noise) pada citra digital kita bisa menggunakan fungsi :
J = imnoise(I,type)
J = imnoise(I,type,parameters)
"I" merupakan matriks penyusun citra, "type" merupakan jenis metode penambahan gangguan yang kita gunakan, sedangkan "parameters" merupakan parameter – parameter yang dipakai. Untuk "type" yang bisa dipakai adalah :
  gaussian’ : Gangguan Gaussian putih dengan mean dan variance yang tetap.
• ’localvar’ : Gangguan Zero-mean Gaussian putih dengan variance intensitydependent.
  poisson’ : Gangguan poison
  salt & pepper’ : Gangguan pixel on dan off.
  speckle’ : Gangguan Multiplicative.
5. Konversi  RGB ke NTSC
Selain warna RGB yang membagi citra menjadi 3 matriks yakni matriks R(Red), matriks G(Green), dan matriks B(Blue), citra juga dapat dibagi ke dalam matriks lain yakni Y, I dan Q yang merupakan komponen warna NTSC. Untuk bisa melakukan konversi RGB ke NTSC di Matlab sangatlah mudah karena memang disediakan fungsi khusus untuk melakukan konversi ini, yaitu :
YIQ = rgb2ntsc(RGB)
Untuk melakukan hal sebaliknya, yakni mengkonversi NTSC ke RGB kita bisa menggunakan fungsi :
RGB = ntsc2rgb(YIQ)
6. Konversi RGB ke YBcBr
Selain RGB dan NTSC, ada lagi warna YBcBr. Seperti halnya RGB dan NTSC, warna YBcBr juga membagi citra berwarna ke dalam 3 matriks, yaitu "Y", "Bc", dan "Br". Di Matlab sangatlah mudah mengkonversi warna RGB ke dalam warna YBcBr karena memang matlab sudah menyediakannya dengan fungsi :
YCBCR = rgb2ycbcr(RGB)
Kemudian, untuk melakukan hal sebaliknya, yakni mengkonversi YCbCr ke RGB kita bisa menggunakan fungsi :
RGB = ycbcr2rgb(YCBCR)
III. PROSEDUR PRAKTIKUM
3.1 Grayscaling
Untuk melakukan Grayscaling di Matlab, kita bisa menggunakan fungsi :
   I = rgb2gray(RGB)
Langkah Kerja
1.   Ketikkan listing program berikut pada M-file
clc;
clear;
RGB=imread('logopnp.jpg');
I=rgb2gray(RGB); %Proses Grayscaling
subplot(1,2,1)
imshow(RGB),title('Logo PNP-RGB')
subplot(1,2,2)
imshow(I),title('Logo PNP-Grayscale')
2. Run program tersebut sehingga Hasil running programnya adalah seperti terlihat pada gambar di bawah ini. Gambar yang di sebelah kiri adalah gambar asli, sedangkan yang di sebelah kanan adalah gambar setelah mengalami proses Grayscaling.
3.2 Binerisasi Citra
Langkah Kerja
1.   Ketikkan listing program berikut pada M-file
clc;
clear;
RGB=imread('logopnp.jpg');
I=im2bw(RGB); %Binerisasi citra
subplot(1,2,1)
imshow(RGB),title('Logo PNP-RGB')
subplot(1,2,2)
imshow(I),title('Logo PNP-Biner')
2. Run program tersebut sehingga hasil running programnya adalah seperti terlihat pada gambardi bawah ini dimana gambar yang di sebelah kiri adalah gambar asli, sedangkan yang di sebelah kanan adalah gambar setelah mengalami proses Binerisasi citra.
3.3. Filtering Citra
Langkah Kerja
1.   Ketikkan listing program berikut pada M-file
clc;
clear;
A=imread('logopnp.jpg');
H1 = fspecial('average');
T1 = imfilter(A,H1,'replicate');
H2 = fspecial('disk');
T2 = imfilter(A,H2,'replicate');
H3 = fspecial('gaussian');
T3 = imfilter(A,H3,'replicate');
B=rgb2gray(A);
subplot(2,2,1)
imshow(A),title('Logo PNP-RGB')
subplot(2,2,2)
imshow(T1),title('Logo PNP-average')
subplot(2,2,3)
imshow(T2),title('Logo PNP-disk')
subplot(2,2,4)
imshow(T3),title('Logo PNP-gaussian')
2.  Hasil running programnya adalah seperti terlihat pada gambar di bawah ini dimana gambar yang di sebelah kiri atas adalah gambar asli, di sebelah kanan atas adalah gambar dengan filter ’average’ dengan parameternya, di sebelah kiri bawah adalah gambar dengan filter ’disk’ dengan parameternya, sedangkan yang kanan bawah adalah gambar dengan filter ’gaussian’ juga dengan parameternya.
3.4. Menambahkan Gangguan (Noise) pada Citra
Langkah Kerja
1.   Ketikkan listing program berikut pada M-file
clc;
clear;
RGB=imread('logopnp.jpg');
N1=imnoise(RGB,'gaussian');
N2=imnoise(RGB,'salt & pepper');
N3=imnoise(RGB,'speckle');
subplot(2,2,1)
imshow(RGB),title('Logo PNP-RGB')
subplot(2,2,2)
imshow(N1),title('Logo PNP-gaussian')
subplot(2,2,3)
imshow(N2),title('Logo PNP-salt & pepper')
subplot(2,2,4)
imshow(N3),title('Logo PNP-speckle')
2. Hasil running programnya adalah seperti terlihat pada gambar di bawah ini dimana gambar yang di sebelah kiri atas adalah gambar asli, di sebelah kanan atas adalah gambar dengan noise ’gaussian’ , di sebelah kiri bawah adalah gambar dengan noise ’salt & pepper’, sedangkan yang kanan bawah adalah gambar dengan noise ’speckle’.
3.5  Konversi  RGB ke NTSC
Langkah Kerja
1.   Ketikkan listing program berikut pada M-file
clc;
clear;
RGB=imread('telur.jpg');
NTSC=rgb2ntsc(RGB);
Y=NTSC(:,:,1);
I=NTSC(:,:,2);
Q=NTSC(:,:,3);
subplot(2,2,1)
imshow(NTSC),title('telur-YIQ')
subplot(2,2,2)
imshow(Y),title('telur-Komponen Y')
subplot(2,2,3)
imshow(I),title('telur-Komponen I')
subplot(2,2,4)
imshow(Q),title('telur-Komponen Q')
2. Running program tersebut sehingga hasil terlihat pada gambar di bawah ini dimana gambar yang di sebelah kiri atas adalah gambar citra dengan warna NTSC, sedangkan yang di sebelah kanan atas adalah gambar citra Y, bawah kiri adalah gambar citra I, sedangkan bawah kanan adalah gambar citra Q.
3.8.  Konversi  RGB ke YBcBr
Langkah Kerja
1.   Ketikkan listing program berikut pada M-file
clc;
clear;
RGB=imread('logopnp.jpg');
YCBCR = rgb2ycbcr(RGB);
Y=YCBCR(:,:,1); %Ekstraksi matriks Y
Cb=YCBCR(:,:,2); %Ekstraksi matriks Cb
Cr=YCBCR(:,:,3); %Ekstraksi matriks Cr
subplot(2,2,1)
imshow(YCBCR),title('Logo PNP-YCbCr')
subplot(2,2,2)
imshow(Y),title('Logo PNP-Komponen Y')
subplot(2,2,3)
imshow(Cb),title('Logo PNP-Komponen Cb')
subplot(2,2,4)
imshow(Cr),title('Logo PNP-Komponen Cr')
2. Running program sehingga hasil terlihat seperti gambar di bawah ini dimana gambar yang di sebelah kiri atas adalah gambar citra dengan warna YCbCr, sedangkan yang di sebelah kanan atas adalah gambar citra Y, bawah kiri adalah gambar citra Cb, sedangkan bawah kanan adalah gambar citra Cr.

0 komentar:

Posting Komentar