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