PCD2011 -2- Akuisisi Citra

Download Report

Transcript PCD2011 -2- Akuisisi Citra

Akuisisi Citra
Pengolahan Citra Digital
Materi 2
Eko Prasetyo
Teknik Informatika
Universitas Muhamamdiyah Gresik
2011
Struktur Mata Manusia


Diameter rata-rata mata manusia 20 mm
Tiga membran yang melindungi mata adalah cornea
dan sclera sebagai pelindung luar; choroid; dan retina.
◦
◦
◦

Lensa
◦
◦

Kornea adalah lapisan keras dan transparan yang
melindungi permukaan mata.
Sclera adalah membran buram yang menempel, sisa dari
globe optik.
Choroid berada di bawah sclera, membrane ini berisi
jaringan pembuluh darah yang menyediakan sumber
utama nutrisi mata.
Terbuat dari concentric layer atau terbuat dari serabut cell
dan menempel ke bodi ciliary.
Berisi 60-70% air, sekitar 6% lemak dan lebih banyak
protein dibanding lapisan yang lain dalam mata
Retina, berupa garis dalam bagian dinding.
◦
◦
Ketika mata difokuskan dengan benar, cahaya obyek di
luar mata digambar pada retina.
Pola mata dihasilkan oleh distribusi reseptor cahaya
diskrit pada permukaan retina
2
Cones dan Rods




Dua kelompok reseptor: cones dan rods.
Jumlah cones pada setiap mata 6 - 7 juta, ditempatkan terutama
dalam bagian pusat retina yang disebut fovea, dan tingginya sensitif
terhadap warna.
Manusia dapat membedakan dengan baik cone-cone ini karena
setiap cone dihubungkan ke syarafnya sendiri-sendiri
Jumlah rod sekitar 75 - 150 juta yang terdistribusi di atas
permukaan retina
3
Pengambilan Citra dengan Sensor
Array
4
Pengambilan Citra dengan Sensor
Array

Pembuatan citra digital: (kiri atas) Continuous image; (kanan atas)
scan line dari A k B; (kiri bawah) sampling dan kuantisasi; (kanan
bawah) digital scan line
5
Citra Analog dan Digital
Sebuah gambar lebih bermakna dari pada ribuan kata.
 Citra dibedakan menjadi dua, citra kontinu dan citra digital.

◦ Citra kontinu/analog: citra yang diperoleh dari sistem optik yang menerima sinyal
analog, seperti mata manusia dan kamera analog.
◦ Citra digital adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi
yang kontinu menjadi gambar diskrit melalui proses sampling.

Citra digital dapat mempunyai makna sebagai berikut :
◦ Fungsi intensitas cahaya f(x,y),

Harga x dan y merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y)
merupakan tingkat kecemerlangan atau intensitas cahaya citra pada titik tersebut;
◦ Citra f(x,y) dimana dilakukan diskritisasi koordinat spasial (sampling) dan diskritisasi
tingkat kecemerlangannya/keabuan (kwantisasi);
◦ Suatu matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra
tersebut dan elemen matriksnya.

Elemen tersebut disebut sebagai elemen gambar/ pixel / picture element / pels) yang
menyatakan tingkat keabuan pada titik tersebut.
6
Citra Digital
Citra digital sebenarnya adalah matrik 2 atau 3 dimensi
dimana setiap piksel merupakan sebuah elemen matrik.
 Jika M adalah jumlah baris, sedangkan N adalah jumlah
kolom,maka jumlah piksel yang digunakan dalam citra
tersebut adalah sebanyak MxN.

Citra kontinu
Citra digital
Matrik citra
Citra obyek
7
Sampling dan Kuantisasi



Citra digital dapat diperoleh dari proses digitalisasi.
Ada 2 proses digitalisasi, yaitu: Sampling,dan Kuantisasi
Sampling
◦ Proses pengambilan nilai diskrit koordinat ruang (x,y) dengan
melewatkan citra kontinu melalui grid (celah)
◦ Proses untuk menentukan warna pada piksel tertentu pada citra dari
sebuah gambar yang kontinu.
◦ Proses sampling biasanya dicari warna rata-rata dari gambar analog yang
kemudian dibulatkan.
◦ Proses sampling disebut proses digitalisasi.

Kuantisasi
◦ Proses pengelompokan nilai tingkat keabuan citra kontinu kedalam
sejumlah level, atau merupakan proses membagi skala keabuan [0,L-1]
menjadi L buah level yang dinyatakan dengan suatu nilai bilangan bulat
(integer), dinyatakan sebagai L = 2a, L adalah derajat keabuan, a : bilangan
bulat positif.
8
Resolusi Citra
Resolusi keabuan

Untuk level warna yang digunakan akan
mempengaruhi hasil warna yang didapatkan

Semakin tinggi nilai a yang digunakan maka
jumlah level warna akan semakin banyak dan
penampakan citra akan semakin halus karena
jumlah kombinasi warna yang didapatkan juga
semakin banyak.

Disebut juga resolusi
brightness/kecemerlangan
Resolusi spasial
 Berkaitan dengan jumlah piksel yang
digunakan oleh setiap satuan persegi
citra kontinu, semakin tinggi resolusi
spasial sebuah citra digital maka
semakin halus bentuk obyek yang
ditampilkan dalam citra digital.
 Resolusi inilah yang sering diperhatikan
oleh orang-orang dalam membuat
sebuah kualitas citra digital selain
resolusi keabuan
256 level
keabuan
Resolusi keabuan 8 dan
resolusi spasial 165x120
Resolusi keabuan 4
Resolusi spasial 11x8
9
Kontras simultan
10
Ilusi Optik
11
Representasi Citra Digital

Citra didefinisikan sebagai fungsi dua
dimensi f(x,y),
◦ x dan y adalah koordinat spasial,
◦ amplitudo dari f pada sembarang
pasangan koordinat (x,y) disebut
intensitas citra (gray level/level keabuan)
pada titik tersebut.

Warna citra dibentuk oleh kombinasi
citra 2-D individual.
◦ Misal: sistem warna RGB, warna citra
terdiri dari tiga komponen individu: red,
green, blue.

Hasil dari sampling dan kuantisasi
adalah matriks dengan tipe data real.
◦ Asumsikan bahwa citra f(x,y) dicoba
sehingga menghasilkan citra yang
mempunyai baris M dan kolom N,
sehingga disebut citra berukuran M x N.
◦ Nilai dari koordinat (x,y) adalah
kuantitas diskrit.


Image origin (titik awal citra)
didefinisikan pada (x,y) = (0,0).
Nilai koordinat berikutnya sepanjang
baris pertama citra adalah (x,y) =
(0,1).
◦

Notasi (0,1) digunakan untuk
menandai contoh kedua sepanjang
baris pertama
Range x mulai dari 0 sampai M – 1
dan y mulai dari 0 sampai N – 1
dalam increment integer
12
Representasi Citra Digital
Setiap elemen array ini
disebut image element,
picture element, pixel, atau
pel.


Representasi citra sebagai
matriks MATLAB
di mana f(1,1) = f(0,0)



M dan N untuk menyatakan jumlah baris dan kolom matriks.
Matriks 1 x N disebut row vector, sedangkan matriks M x 1 disebut
column vector
Matrik 1x1 disebut skalar
13
Pembacaan citra di Matlab

Membaca/me-load citra ke variabel
◦ imread(‘namafile’)

Mendapatkan dimensi baris dan kolom citra
◦ [M, N] = size(i);

Menampilkan informasi tambahan dari array
◦ whos <nama variabel>
Nama format
TIFF
JPEG
GIF
BMP
PNG
XWD
Penjelasan
Tagged Image File Format
Joint Photographic Experts
Group
Graphics Interchange Format
Windows Bitmap
Portable Network Graphics
X Window Dump
Ekstensi yang dikenali
.tif, .tiff
.jpg, .jpeg
.gif
.bmp
.png
.xwd
Format citra yang dapat diolah di MATLAB
14
Menampilkan citra

imshow(f, G)
◦ f adalah array citra
◦ G adalah jumlah level intensitas yang digunakan untuk menampilkannya.
◦ Jika G diabaikan maka akan menggunakan default 256.

imshow(f, [low high])
◦ akan menampilkan warna hitam pada semua nilai yang kurang dari atau
sama dengan low dan putih pada semua nilai yang lebih besar atau sama
dengan high.

imshow(f, [ ])
◦ men-set variabel low ke nilai minimum dari array f dan high ke nilai
maksimumnya.
◦ Sangat berguna untuk menampilkan citra yang mempunyai range dinamis
yang rendah atau mempunyai nilai positif dan negatif.

Fungsi pixval digunakan untuk menampilkan nilai intensitas piksel
masing-masing secara interaktif
15
Menyimpan citra

Citra dapat disimpan ke disk
menggunakan fungsi imwrite
◦ imwrite(f, ‘namafile’)
◦ String yang menjadi isi parameter ‘nama file’
harus memasukkan ekstensi format file yang
dikenali
◦ >> imwrite(i, ‘rice_01.tif’);
◦ >> imwrite(i, ‘rice_01’,’tif’);
16
Kelas Data
Nama
double
uint8
uint16
uint32
int8
int16
int32
single
char
logical
Penjelasan
Double-precision, foating-point numbers dalam jangkauan kira-kira -10308
sampai 10308 (8 byte per elemen)
Unsigned 8-bit integer dalam jangkauan [0, 255] (1 byte per elemen)
Unsigned 16-bit integer dalam jangkauan [0, 65535] (2 byte per elemen)
Unsigned 32-bit integer dalam jangkauan [0, 4294967295] (4 byte per
elemen)
Signed 8-bit integer dalam jangkauan [-128, 127] (1 byte per elemen)
Signed 16-bit integer dalam jangkauan [-32768, 32767] (2 byte per
elemen)
Signed 32-bit integer dalam jangkauan [-2147483648, 2147483647] (4
byte per elemen)
Single-precision floating-point number dengan perkiraan jangkauan 1038 sampai 1038 (4 byte per elemen)
Karakter (2 byte per elemen)
Nilai 0 atau 1 (1 byte per elemen)
17
Fungsi untuk mengonversi antar
kelas
Nama Fungsi
Tujuan konversi
im2uint8
im2uint16
mat2gray
im2double
im2bw
uint8
uint16
double (dalam range [0,1])
double
logical
Input kelas data citra yang
valid
logical, uint8, uint16 dan double
logical, uint8, uint16 dan double
Double
logical, uint8, uint16 dan double
uint8, uint16 dan double
18
Peng-indeks-an matrik

Array berdimensi 1 x N disebut row vector (vektor baris)
◦ >> v = [1 3 5 7 9]
◦ >> v(2)

transpose operator (.’):
◦ >> w = v.'

mengakses sejumlah elemen dapat menggunakan tanda titik dua
◦ >> v(2:4)

mengakses elemen ketiga sampai terakhir:
◦ >> v(3:end)

Notasi 1:2:end artinya dimulai dari elemen pertama kemudian elemen ke
1+2, ke 3+2 dan seterusnya sampai elemen terakhir
◦ >> v(1:2:end)

Fungsi linspace dengan sintaks:
◦ >> x = linspace(a, b, n)
◦ akan men-generate vektor baris x dari n elemen secara linear pada space di antara dan
termasuk a dan b
19
Peng-indeks-an matrik


Matriks sebagai seurutan vektor baris yang dibatasi kurung siku dan dipisahkan dengan
tanda titik koma.
Membuat matrik 2 dimensi
◦

Mengekstrak elemen pada baris kedua dan kolom ketiga:
◦

>> A(:,2)
>> A(3,:)
>> A(1:2, 1:end)
Untuk membuat array B sama dengan array A, tetapi nilai kolom ketiga sama dengan 0:
◦
◦

>> A(2,3)
Operator titik dua digunakan untuk memilih blok elemen dua dimensi dari matriks:
◦
◦
◦

>> A = [1 2 3; 4 5 6; 7 8 9]
>> B = A;
>> B(:, 3) = 0
Operasi menggunakan end dapat dilakukan dengan cara yang sama:
◦
◦
◦
>> A(end, end)
>> A(end, end - 2)
>> A(2:end, end:-2:1)
20
Peng-indeks-an matrik

Penggunaan titik dua sebagai indeks dalam matriks untuk
memilih semua elemen array (basis kolom per kolom) dan
disusun dalam bentuk vektor kolom:
◦ >> A(:)

Penggunaan titik dua juga sangat berguna ketika ingin
menjumlahkan semua elemen matriks:
◦ >> s = sum(A(:))
◦ >> s = sum(A)
◦ >> s = sum(sum(A))

Operasi flip vertikal
◦ >> fv = i(end:-1:1,:);

Subsampling
◦ >> fc = i(87:200 , 240:400);

Resize
◦ >> fs = i(1:2:end, 1:2:end);
21
Operator aritmetika
Operat
or
+
.*
*
Penjumlahan array dan matriks
Pengurangan array dan matriks
Perkalian array
Perkalian matriks
Fungsi di
MATLAB
plus(A, B)
minus(A, B)
times(A, B)
mtimes(A, B)
./
.\
/
Pembagian kanan array
Pembagian kiri array
Pembagian kanan matriks
rdivide(A, B)
ldivide(A, B)
mrdivide(A, B)
\
Pembagian kiri matriks
mldivide(A, B)
.^
^
.’
‘
Pangkat array
Pangkat matriks
Transpose vektor dan matriks
Transpose lengkap vektor dan
matriks
Unary plus
Unary minus
power(A, B)
mpower(A, B)
transpose(A)
ctranspose(A)
+
-
Nama
uplus(A)
uminus(A)
Penjelasan dan contoh
a+b, A+B, atau a+A
a-b, A-B,A-a, atau a-A
C=A.*B, C(I,J) = A(I,J) * B(I,J)
A*B, perkalian matriks standart, atau a*A,
perkalian skalar semua elemen A
C = A./B, C(I,J) = A(I,J)/B(I,J)
C = A.\B, C(I,J) = A(I,J)\B(I,J)
A/B sama dengan A*inv(B), tergantung
akurasi komputasi
A\B sama dengan inv(A)*B, tergantung
akurasi komputasi
Jika C = A.^B maka C(I,J) = A(I,J)^B(I,J)
A.’, mentranspose vektor dan matriks standart
A’, mentranspose perubahan vektor dan
matriks standard. Jika A real maka A.’ = A’
+A sama dengan 0+A
-A sama dengan 0-A
22
Operator relasional
Operator
Nama
==
Pembandingan apakah dua operand
nilainya sama
Pembandingan apakah operand yang
pertama lebih kecil daripada yang kedua
Pembandingan apakah operand yang
pertama lebih kecil daripada yang kedua
Pembandingan apakah operand yang
pertama lebih kecil atau sama dengan yang
kedua
Pembandingan apakah operand yang
pertama lebih besar atau sama dengan
yang kedua
Pembandingan apakah operand yang
pertama tidak sama dengan yang kedua
<
>
<=
>=
~=
Fungsi di
MATLAB
eq(A, B)
Penjelasan dan contoh
a==b, A==B, atau a==A
lt(A, B)
A<b, A<B,A<a, atau a<A
gt(A, B)
A>b, A>B,A>a, atau a>A
le(A, B)
A<=b, A<=B,A<=a, atau
a<=A
ge(A, B)
A>=b, A>=B,A>=a, atau
a>=A
ne(A, B)
A~=b, A~=B,A~=a, atau
a~=A
23
Operator Logika
Operator
Nama
&
Operasi logika AND antara
dua operand
|
Operasi logika OR antara
dua operand
(tidak
Operasi logika XOR antara
ada)
dua operand
~
Operasi NOT pada sebuah
operand
Fungsi di MATLAB Penjelasan dan contoh
and(A, B)
a & b, A & B, atau a & A
or(A, B)
A | b, A | B,A | a, atau a | A
xor(A, B)
xor(A,b), xor(A,B), xor(A,a),
atau xor(a,A)
A~b, A~B,A~a, atau a~A
not(A, B)
24
Flow Kontrol pada M-file
Statemen
if
for
while
break
continue
switch
return
try … catch
Penjelasan
If, bergabung dengan else dan elseif, mengeksekusi sekumpulan statemen
berdasarkan pada persyaratan logika yang ditentukan
Mengeksekusi sekelompok statemen sejumlah angka yang ditentukan
Mengeksekusi sekelompok statemen sejumlah yang tidak ditentukan,
berdasarkan pada persyaratan logika yang ditetapkan
Menghentikan eksekusi perulangan for dan while
Melewatkan (tidak mengerjakan) kontrol ke iterasi berikutnya pada
perulangan for dan while
switch, bergabung dengan case dan otherwise, mengeksekusi sekelompok
statemen yang berbeda, tergantung dari nilai atau string yang dibaca
Menyebabkan eksekusi kembali ke pemanggil fungsi (eksekusi melompat ke
akhir fungsi)
Mengubah flow control jika kesalahan terdeteksi selama eksekusi
25
To Be Continued … Materi 3 – Citra biner, berwarna,
thresholding, transformasi
ANY QUESTION ?
26