Anda di halaman 1dari 36

Laporan Sementara

Pemrosesan Citra Digital

PEMROSESAN CITRA DIGITAL

Oleh:
Reynal Kwandou
H011181326

PROGRAM STUDI MATEMATIKA


JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HASANUDDIN
2020
BAB I
PENGENALAN CITRA

1. Pengertian Citra dan Citra Digital

Citra (gambar/image), menurut kamus Webster, adalah suatu representasi (gambaran),


kemiripan, atau imitasi dari suatu objek. Citra, dari sudut pandang matematis, merupakan fungsi
menerus (continue) dari intensitas cahaya pada bidang 2 dimensi. Citra terbagi 2, yaitu citra yang
bersifat analog dan citra yang bersifat digital. Citra analog adalah citra yang bersifat kontinu
seperti gambar pada monitor televise, foto sinar-X, hasil CT scan, dll. Sedangkan citra digital
adalah citra yang dapat diolah komputer.
Citra digital adalah citra f(x,y) dimana dilakukan diskritisasi koordinat sampling/ spasial
dan diskritisasi tingkat kwantisasi (kabuan/ kecemerlangannya). Citra digital memiliki fungsi
intensitas cahaya f(x,y), dimana harga x dan harga y adalah koordinat spasial. Harga fungsi
tersebut di setiap titik (x,y) merupakan tingkat kecemerlangan citra pada titik tersebut. Citra
digital merepresentasikan sebuah citra dua dimensi sebagai sebuah kumpulan nilai digital yang
disebut elemen gambar atau piksel. Piksel adalah satuan terkecil dari citra yang mengandung
nilai terkuantisasi yang mewakili brightness dari sebuah warna pada sebuah titik tertentu.

Citra digital berupa suatu matriks dimana indeks baris dan kolomnya menyatakan suatu
titik pada citra tersebut dan elemen matriksnya (yang disebut sebagai elemen gambar/ pixel/
piksel/ pels/ picture element) menyatakan tingkat keabuan pada titik tersebut. Setiap piksel
memiliki koordinat sesuai posisinya dalam citra. Koordinat ini biasanya dinyatakan dalam
bilangan bulat positif, yang dapat dimulai dari 0 atau 1 tergantung pada sistem yang digunakan.
Setiap piksel juga memiliki nilai berupa angka digital yang merepresentasikan informasi yang
diwakili oleh piksel tersebut.

2. Jenis-Jenis Citra

Selain citra digital dan kontinu, citra juga dapat dibedakan berdasarkan tingkatan
warnanya, sebagai berikut:
a. Citra Biner ( Monokrom )
Citra biner atau monokrom adalah cittra yang setiap pikselnya hanya memiliki dua
kemungkinan derajat keabuan, yakni 0 (hitam) dan 1 (putih). Proses pembineran dilakukan
dengan membulatkan ke atas atau ke bawah untuk setiap nilai keabuandari piksel yang berada
di harga ambang. Metode untuk menentukan besarnya harga ambang disebut thresholding.
Setiap titik membutuhkan 1 bit di mana 1 byte dapat menampung 8 titik. Berikut adalah
contoh representasi citra biner:

1 1 0 1 1 0 1 1

[ 1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
]
Pada model citra cahaya, jika ada cahaya (=1) maka warna putih sedangkan jika tidak
ada cahaya (=0) maka warna hitam . Pada model citra tinta cat, jika ada cat (=1) maka warna
hitam, sedangkan jika tidak ada cat (=0) maka warna putih

b. Citra Keabuan (Grayscale)


Supaya citra digital dapat diolah computer, maka citra digital harus mempunyai format
tertentu. Format citra digital yang dipakai adalah citra skala keabuan (grayscale). Pada
umumnya warna ynag digunakan pada grayscale adalah warna hiatam sebagai warna minimal
(0) dan warna putih 255) sebagai warna maksimal, sehingga warna diantaranya adalah abu-
abu.

t=[];
for j=0:5:200
A=[repmat(j,100,20)];
t=[t A];
end
imshow(uint8(t));
Derajat keabuan memiliki nilai tidak hanya skala 0 sampai 255. Tergantung pada nilai
piksel yang dimiliki oleh citra. Skala keabuan (grayscale = G) di bagi menjadi sejumlah level
yang memiliki nilai berupa bilang bulat dan merupakan hasil perpangkatan dua (G = 2m)

Skala Keabuan Skala (0,L) Pixel Depth


1
2 0,1 1 bit
2
2 0 sampai 3 2 bit
24 0 sampai 15 4 bit
8
2 0 sampai 255 8 bit
Citra skala keabuan mempunyai kemungkinan warna antara Hitam (minimal) dan
Putih (maksimal). Jumlah maksimum warna sesuai dengan bit penyimpanan yang digunakan.
Setiap titik (pixel) mempunyai 4bit dan 8bit sebagai media penyimpanan (24) = 16 Warna,
(28) = 256 Warna. (24) Kemungkinan warna 0 (min) sampai 15 (max), (28) kemungkinan
warna 0 (min) sampai 255 (max). Berikut adalah contoh representasi citra keabuan:
c. Citra Warna (True Colour)
Setiap piksel pada citra mewakili warna yang merupakan kombinasi dari tiga warna
dasar, yakni Red (R), Green (G) dan Blue (B) Sering disebut sebagai citra RGB dan setiap
komponen warna mempunyai intensitas masing-masing dengan interval 0-255. Contoh: warna
kuning (gabungan warna merah dan hijau) sehingga nilai RGBnya: R = 255, G = 255 dan B =
0.
Warna R G B
Merah 255 0 0
Hijau 0 255 0
Biru 0 0 255
Hitam 0 0 0
Putih 255 255 255
Kuning 0 255 255
Hasil=[];
for k=1:3
t=[];
for j=0:5:255
if k==1
R=[repmat(j,100,20)];
G=[repmat(0,100,20)];
B=[repmat(0,100,20)];
end
if k==2
R=[repmat(0,100,20)];
G=[repmat(j,100,20)];
B=[repmat(0,100,20)];
end
if k==3
R=[repmat(0,100,20)];
G=[repmat(0,100,20)];
B=[repmat(j,100,20)];
end
h(:,:,1)=R;
h(:,:,2)=G;
h(:,:,3)=B;
t=[t h];
end
Hasil=[Hasil;t];
end
imshow(uint8(Hasil));

Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte. Jadi setiap pikselnya
membutuhkan 3 byte. Penyimpanan citra true color di dalam memori berbeda dengan citra
grayscale (tingkat keabuan). Setiap piksel dari citra grayscale 256 gradasi warna yang
diwakili oleh 1 byte. Sedangkan satu piksel citra RGB diwakili oleh 3 byte yang masing-
masing merepresentasikan warna merah, hijau, biru. Berikut adalah contoh representasi citra
warna:

49 55 56 56 52 53 64 76 82 79 78 78 66 80 77 80 87 77

[ ][ ][ ]
58 60 60 60 55 57 93 93 91 91 86 86 81 93 96 99 86 85
58 58 54 53 55 56 88 82 88 90 88 89 83 83 91 94 92 88
83 78 72 69 68 69 125 119 113 108 111 110 135 128 126 112 107 106
88 91 91 84 83 82 137 136 132 128 126 120 141 129 129 117 115 101
69 76 83 78 76 75 105 108 114 114 118 113 95 99 109 108 112 109
61 69 73 78 76 76 96 103 112 108 111 107 84 93 107 101 105 102

Red Green Blue


d. Citra Berindeks
Format penyimpanan warna RGB dengan jumlah kombinasi warna 16 juta warna serta
jumlah memori 3 x jumlah piksel membuat penggunaan memori agak besar. Untuk
penghematan penyimpanan berkas dan penanganan berkas file digunakan citra warna
berindeks. Citra warna berindeks memiliki sebuah peta warna yang tekait dengan indeks
warna yang menyimpan daftar semua warna yang digunakan pada suatu citra. Daftar ini
kemudian disebut palet warna. Setipresentasinya akaap piksel pada citra berindeks mewakili
sebuah indeks warna yang representasinya akan tersimpan pada peta warna. Contoh palet
warna citra

dengan indeks seperti berikut warna ini:

Indeks R G B
0 0 0 0
1 51 52 60

 

 

4 255 255 255 

 

 

10 250  10  240

Setting warna display pada MS Window biasanya format 16 colors, 256 colors, high
color, true color, yang merupakan citra warna berindeks dengan ukuran palet masing-masing
4 bit, 8 bit, 16 bit dan 24 bit.
Ada bermacam format representasi citra dalam file, seperti bmp, gif, tif, jpg, dan
sebagainya. Format BMP merupakan format yang kurang efisien, karena semua informasi
angka dalam baris disimpan semua. Misalkan ukuran header adalah H byte, ukuran citra
100x100 byte monokrom, maka ukuran file bmp tersebut adalah H + data citra = H + 10000
Byte. Suatu citra format BMP 8 bit berukuran 200 x 100 maka memori yang dibutuhkan
untuk menyimpan data citra tersebut (tanpa header) sebesar memori 19,5KB.

3. Format File Citra


Sebuah format file citra harus dapat menyatukan kualitas citra, ukuran file dan
kompabilitas dengan berbagai aplikasi. Format file citra standar yang digunakan saat ini terdiri
dari beberapa jenis. Format- format ini digunakan untuk menyimpan citra dalam sebuah file.
Setiap format memiliki karakteristik masing- masing. Ini adalah contoh format umum, yaitu:
Bitmap (.bmp), tagged image format (.tif, .tiff), Portable Network Graphics (.png), JPEG (.jpg),
dll.
Ada dua jenis format file citra yang sering digunakan dalam pengolahan citra, yaitu citra
bitmap dan citra vektor. Pada citra bitmap ini sering disebut juga citra raster. Citra bitmap ini
menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per piksel).
Citra bitmap ini dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan
bilangan biner atau sistem bilangan yang lain. Citra ini memiliki kelebihan untuk memanipulasi
warna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan
kehalusan gradasi bayangan dan warna dari sebuah gambar. Tetapi bila tampilan diperbesar
maka tampilan di monitor akan tampak pecah-pecah (kualitas citra menurun).
Sedangkan pada format file citra vektor merupakan citra vektor yang dihasilkan dari
perhitungan matematis dan tidak terdapat piksel, yaitu data yang tersimpan dalam bentuk vektor
posisi, dimana yang tersimpan hanya informasi vektor posisi dengan bentuk sebuah fungsi. Pada
citra vektor, mengubah warna lebih sulit dilakukan, tetapi membentuk objek dengan cara
mengubah nilai lebih mudah. Oleh karena itu, bila citra diperbesar atau diperkecil, kualitas citra
relatif tetap baik dan tidak berubah.

4. Resolusi Citra

Resolusi citra merupakan tingkat detailnya suatu citra. Semakin tinggi resolusinya
semakin tinggi pula tingkat detail dari citra tersebut. Ada dua jenis resolusi yang perlu diketahui,
yaitu:
a. Resolusi Spasial
Resolusi spasial ini merupakan ukuran halus atau kasarnya pembagian kisi-kisi baris
dan kolom pada saat sampling. Resolusi ini dipakai untuk menentukan jumlah pixel per
satuan panjang. Biasanya satuan resolusi ini adalah dpi (dot per inchi). Resolusi ini sangat
berpengaruh pada detail dan perhitungan gambar.

b. Resolusi Kecemerlangan
Resolusi kecemerlangan (intensitas/ brightness) atau biasanya disebut dengan
kedalaman bit/ kedalaman warna (Bit Depth) adalah ukuran halus kasarnya pembagian
tingkat gradasi warna saat dilakukan kuantisasi. Bit Depth menentukan berapa banyak
informasi warna yang tersedia untuk ditampilkan dalam setiap piksel. Semakin besar
nilanya, semakin bagus kualitas gambar yang dihasilkan dan tentu ukuran juga semakin
besar.
4.1. Fungsi Pengolahan Citra Digital
Berikut adalah fungsi pengolahan citra antara lain:
a. Digunakan sebagai proses memperbaiki kualitas citra agar mudah diinterpretasi oleh
manusia atau computer.
b. Digunakan untuk teknik pengolahan citra dengan mentrasformasikan citra menjadi citra
lain, contoh: pemampatan citra (image compression).
c. Digunakan sebagai proses awal (preprocessing) dari komputer visi.

4.2. Teknik Pengolahan Citra Digital


Secara umum teknik pengolahan citra digital dibagi menjadi 3 tingkat pengolahan, yakni
sebagai berikut.
a. Low-Level Processing (pengolahan tingkat rendah), pengolahan ini merupakan operasi
dasar dalam pengolahan citra, seperti pengurangan noise, perbaikan citra dan restorasi
citra.
b. Mid-Level Processing (pengolahan tingkat menengah), meliputi segmentasi pada citra,
deskripsi objek, dan klasifikasi objek secara terpisah.
c. High-Level Processing (pengolahan tingkat tinggi), meliputi analisis citra.

4.3. Aplikasi Pengolahan Citra Digital

Pengolahan citra mempunyai aplikasi yang sangat luas dalam berbagai bidang
kehidupan. Di bawah ini disebutkan beberapa aplikasi dalam beberapa bidang.
a. Bidang perdagangan
 Pembacaan kode barang (bar code) yang tertera pada barang (umum digunakan di
pasar swalayan/supermarket).
 Mengenali huruf/angka pada suatu formulir secara otomatis.
b. Bidang militer
 Mengenali sasaran peluru kendali mela lui sensor visual.
 Mengidentifikasi jenis pesawat musuh.
c. Bidang kedokteran
 Pengolahan citra sinar X untuk mammografi (deteksi kanker payudara)
 Mendeteksi kelainan tubuh dari foto sinar X.
 Rekonstruksi foto janin hasil USG
d. Bidang biologi
 Pengenalan jenis kromosom melalui gambar mikroskopik
e. Komunikasi data
 Pemampatan citra yang ditransmisi.
f. Hiburan
 Pemampatan video (MPEG)
g. Robotika
 Visualy-guided autonomous navigation
h. Hukum
 Pengenalan sidik jari
 Pengenalan foto narapidana.
BAB II
DASAR-DASAR PENGOLAHAN CITRA

1. Memulai MATLAB
Pertama-tama, buka aplikasi MATLAB.

Maka akan terlihat tampilan jendela MATLAB seperti berikut ini.

Command windows (layar perintah) digunakan untuk menjalankan program atau perintah
yang dibuat pada layar editor matlab. Pada layar ini dapat diakses perintah maupun komponen
pendukung yang ada pada MATLAB secara langsung. Salah satu ciri dari command windows
ditandai dengan tanda prompt (>>).

Setelah itu, MATLAB siap dijalankan dengan menuliskan perintah yang diinginkan
2. Membaca Citra
Pertama-tama copy sebuah gambar lalu tempatkan kedalam folder directory MATLAB,
yaitu pada C:\ MATLAB \R2018a\bin. Contohnya gambar dengan nama ‘kelinci’ seperti berikut
ini.

Selanjutnya, untuk membaca citra perintah yang digunakan pada MATLAB adalah
perintah imread yang berarti image read. Sintaksnya yaitu:

imread(‘nama_file’)
Dalam menuliskan nama file harus disertai dengan tipe dari file gambar tersebut, seperti .jpg,
.bmp, .png, dsb. Seperti pada contoh berikut:

>> A=imread(‘kelinci.jpg’)

Lalu labeli nama dari gambar tersebut di MATLAB. Setelah ‘menekan enter’ maka akan
muncul matriks seperti berikut ini

Karena dibagian sebelah kanan command window tidak bisa menampilkan jumlah kolom
matriks, lanjutan kolom matriks akan berlanjut dibagian bawah seperti berikut ini
Untuk melihat ukuran dimensi baris dan kolom dari file citra tersebut dapat digunakan
sintaks sebagai berikut:
>>size(A)

Setelah ‘menekan enter’ maka akan muncul tampilan seperti berikut

3. Menampilkan Citra

Untuk membaca citra perintah yang digunakan pada MATLAB adalah perintah imshow
yang berarti image show. Sintaksnya yaitu:
>>imshow(A)

Variabel ‘A’ adalah label dari gambar tersebut di MATLAB. Setelah ‘menekan enter’
maka akan muncul tampilan seperti berikut ini
informasi tambahan gambar

>>Imfinfo (‘nama_file’)

Setelah ‘menekan enter’ maka akan muncul seperti berikut ini

4. Membuat Citra Biner


Untuk membuat matriks biner, gunakan angka ‘1’yang mewakili warna putih dan angka
‘0’ yang mewakili warna putih. Misalkan terdapat suatu matriks biner seperti berikut ini

Y = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1;1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;1 1 1 0 0 0 1


1 1 1 1 0 0 0 1 1;1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1;1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1;1 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1;1
1 1 1 1 1 1 1 0 1 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1;1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1;1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
Selanjutnya akan didefenisikan pada MATLAB sebagai matriks ‘A’ seperti berikut ini

Dengan menuliskan perintah


>> imshow (Y)
>> imagesc (Y)
>> grid on

Akan muncul tampilan seperti berikut ini


Perintah imshow berfungsi untuk menampilkan matriks menjadi sebuah citra (gambar),
perintah imagesc berfungsi untuk memperbesar resolusi citra dan perintah grid on berfungsi
untuk menampilkan skala tampilan citra( bergaris-garis).

5. Mengubah Citra Warna Menjadi Citra Grayscale

Untuk mengubah warna citra atau mengubah tampilan citra menjadi hitam putih dapat
menggunakan sintaks:

Dengan menuliskan perintah lengkap berikut


>> f=imread(‘pemandangan.jpeg’);
>> g=rgb2gray(f);
>> subplot(1,2,1)
>> imshow(f)
>> title(‘Gambar Asli’)
>> subplot(1,2,2)
>> imshow(g)
>> title(‘Gambar Grayscale’)

Sehingga akan memunculkan tampilan seperti berikut ini

Fungsi subplot(x,y,z) digunakan untuk menampilkan gambar dengan baris dan kolom
tertentu, dimana:
x = bilangan yang menyatakan banyaknya baris yang diinginkan
y = bilangan yang menyatakan banyaknya kolom yang diinginkan
z = bilangan yang menyatakan urutan gambar yang diinginkan

Fungsi title digunakan untuk memberikan judul yang dinginkan pada gambar yang
ditampilkan.

6. Mencerminkan Citra
Mencerminkan citra secara vertikal horizontal dan terbalik
>> f=imread(‘kelinci.jpg’);
>> g=f(end:-1:1,:,:)
>> h=f(:,end:-1:1,:,:)
>> j=f(end:-1:1,:,:,end:-1:1,:,:)
>> subplot(2,2,1)
>> imshow(f);
>> title(‘gambar palsu)
>> subplot(2,2,2)
>> imshow(g);
>> title(‘gambar asli’)
>> subplot(2,2,3)
>> imshow(h);
>> title(‘gambar terbalik lagi)
>> subplot(2,2,4)
>> imshow(j);
>> title(‘gambar terbalik lainnya’)

Sehingga akan memuncukan tampilan seperti berikut ini


7. Memotong Citra
Untuk memotong atau meng-crop (menampilkan beberapa bagian matriks citra) yaitu
menggunakan sintaks:

>> f=imread(‘nama_file’);
>> g=f(a:b,c:d,:);
>> imshow(g)

Misalnya diberikan suatu matriks seperti berikut ini

15 0 4 10 25

[
C= 0 20 15 15 10
14 0 4 10 20 ]
Dengan menggunakan perintah diatas, matriks tersebut akan terpotong seperti berikut
Sehingga jika diberikan suatu citra, citra tersebut juga dapat dipotong melalu matriksnya
seperti berikut
>> A = imread ('kelinci.jpg');
>> B = A(1:150,100:200,:);
>> subplot(1,2,1)
>> imshow (A);
>> title('Gambar Asli')
>> subplot (1,2,2)
>> imshow(B);
>>title('Gambar Hasil Crop')

Maka akan muncul hasil crop gambar seperti dibawah ini:


8. Mengacak Citra

Dengan memanfaatkan indeks dalam matriks , sebuah gambar dapat diolah dengan begitu
banyak cara . Salah satu cara lainnya adalah membalik, memutar dan memotong gambar dan kita
dapat mengacak susunan suatu gambar. Agar teknik pengacakan gambar ini dapat lebih dipahami
maka terlebih dahulu akan dibuat suatu contoh gambaran pengacakan dengan menggunakan matriks.

Dapat dilihat bahwa perintah (:, [3:4 1:2] ) membagi dua kolom matriks yaitu kolom 1 dan 2
dengan kolom 3 dan 4 kemudian menukar posisi kolom 3 dan 4 menjadi kolom ke 1 dan 2, dan
sebaliknya. Citra yang direpresentasikan dalam bentuk matriks dapat diacak barisnya, kolomnya
ataupun baris dan kolomnya.

a. Mengacak baris
Untuk mengacak baris citra dapat digunakan perintah berikut ini:
>> a=imread('kelinci.jpg');
>> size (a)
>> b=a([84:168 1:83],:,:);
>> subplot(1,2,1)
>> imshow(a);
>> title('Gambar Asli')
>> subplot(1,2,2)
>> imshow(b);
>> title('Baris teracak')

Sehingga akan memunculkan tampilan seperti berikut ini


b. Mengacak kolom
Untuk mengacak baris citra dapat digunakan perintah berikut ini:
>> a=imread('kelinci.jpg');
>> size (a)
>> c=a([151:300 1:150],:,:);
>> subplot(1,2,1)
>> imshow(a);
>> title('Gambar Asli')
>> subplot(1,2,2)
>> imshow(c);
>> title('kolom teracak')

Sehingga akan memunculkan tampilan seperti berikut ini


c. Mengacak baris dan kolom
Untuk mengacak baris dan kolom citra dapat digunakan perintah berikut ini:
>> A=imread('kelinci.jpg');
>> D=A([85:168 1:84],[151:300 1:150],:);
>> subplot(1,2,1)
>> imshow(A);
>> title('Gambar Asli')
>> subplot(1,2,2)
>> imshow(D);
>> title('kolom&baris teracak')

Sehingga akan memunculkan tampilan seperti berikut ini

Jika ingin semua gambar hasil pengacakan disatukan, maka dapat dituliskan perintah
lengkap seperti berikut
>>a=imread('kelinci.jpg');
>>size (a)
>>b=a([84:168 1:83],:,:);
>>c=a(:,[151:300 1:150],:);
>>d=a([85:168 1:84],[151:300 1:150],:);
>>subplot(2,2,1)
>>imshow(a);
>>title('Gambar Asli')
>>subplot(2,2,2)
>>imshow(b);
>>title('Mengacak Baris')
>>subplot(2,2,3)
>>imshow(c);
>>title('Mengacak Kolom')
>>subplot(2,2,4)
>>imshow(d);
>>title('Mengacak Baris & Kolom')

Sehingga akan memuncukan tampilan seperti berikut ini

9. Menyusutkan Citra

Misalnya A didefinisikan sebagai sebuah matriks seperti berikut ini

Dapat dilihat bahwa perintah A(1:2:6,1:2:6,:) menyebabkan jumlah baris dan kolom dari
matriks menjadi setengahnya yaitu 3x3 dimana 1:2:6 menandakan bahwa baris dan kolom yang
terambil pada A ialah yang terletak pada baris/kolom ke-1, baris/kolom ke 1+2, sampai
baris/kolom ke 1+2+2 karena baris/kolom ke 1+2+2+2 tidak ada karena lebih dari 6 dimana
matriks hanya berukuran 6x6. Citra dapat disusutkan ke bawah ataupun ke samping.

a. Menyusutkan citra ke bawah

Untuk menyusutkan citra ke bawah dapat digunakan perintah berikut ini:

Dengan menuliskan perintah lengkap berikut


>> a=imread('kelinci.jpg');
>> b=a(1:3:end,1:1:end,:);
>> subplot(1,2,1)
>> imshow(a);
>> title('Gambar Asli')
>> subplot(1,2,2)
>> imshow(b);
>> title('Menyusutkan ke Bawah')
Sehingga akan memunculkan tampilan seperti berikut ini

b. Menyusutkan citra ke samping

Untuk menyusutkan citra ke bawah dapat digunakan perintah berikut ini:

Dengan menuliskan perintah lengkap berikut


>> a=imread(‘nama_file’);
>> b=a(1:1:end,1:3:end,:);
>> subplot(1,2,1)
>> imshow(a);
>> title(‘Gambar Asli’)
>> subplot(1,2,2)
>> imshow(c);
>> title(‘Menyusutkan ke samping’)

Sehingga akan memunculkan tampilan seperti berikut ini


BAB III

TRANSFORMASI INTENSITAS DAN PENYARINGAN SPASIAL

1. Fungsi Trasnformasi Intensitas

Untuk mentrasnformasikan intensitas suatu citra dapat menggunakan operasi dasar


matematika seperti penjumlahan, pengurangan, perkalian serta pembagian pada suatu citra yang
didefenisikan oleh variabel terlebih dahulu. Dasar-dasar transformasi berkaitan dengan
penjumlahan, pengurangan, perkalian dan pembagian terhadap matriks citra. Misalkan suatu
matriks A:
>> F = [2 3 1 5 6 ; 5 3 7 7 1; 2 6 3 5 3; 1 4 3 2 4]
A =
2 3 1 5 6
5 3 7 7 1
2 6 3 5 3
1 4 3 2 4

>> G = (F)/2
G =
1 1.5 0.5 2.5 3
2.5 1.5 3.5 3.5 0.5
1 3 1.5 2.5 1.5
0.5 2 1.5 1 2

>> H = (F)*2
H =
4 6 2 10 12
10 6 14 14 2
4 12 6 10 6
2 8 6 4 8
Berdasarkan contoh-contoh matriks diatas dapat dilihat bahwa perintah G = (F)/2
menyebabkan semua elemen matriks A dibagi 2. Perintah H = (F)*2 menyebabkan semua
elemen matriks A dikali 2. Hal ini juga dapat diterapkan dalam citra untuk membuat citra
menjadi semakin gelap atau terang yaitu dengan mengubah nilai-nilai elemen matriks citra.
Semakin kecil nilai elemennya maka akan semakin gelap dan semakin besar nilai elemennya
maka akan semakin terang citra yang dihasilkan.
Berikut adalah sintaks transformasi intensitas dengan menggunakan operasi dasar
matematika:

>> F=imread(‘landskep.jpg’);
>> G=(F)/2;
>> H=(F)*2;
>> subplot(2,2,1);
>> imshow(g); title(‘Gambar Dibagi’);
>> subplot(2,2,2);
>> imshow(h); title(‘Gambar Dikali’);

Maka memunculkan tampilan begini :

2. Transformasi Logaritma

Transformasi Logaritma adalah alat dasar untuk dinamis berbagai manipulasi.


Transformasi logaritma diimplementasikan menggunakan sintaks:

g=c*log (1+double(f))

dimana c merupakan bilangan konstan. Transformasi ini


memiliki nilai-nilai yang rendah ditetapkan pada 0 dan nilai-nilai tinggi yang ditetapkan untuk 1
pada kedua skala. Berikut contoh transformasi logaritma dengan perintah:

>> f=imread(‘pemandangan.jpeg’);
>> g=99*log(1+double(f));
>> subplot(1,2,1);
>> imshow(f); title(‘Gambar Asli’);
>> subplot(1,2,2);
>> imshow(g); title(‘Gambar logaritma’)
Sehingga akan menampilkan tampilan seperti berikut

3. Linear Spasial Filttering


a. Konvolusi
Secara umum konvolusi merupakan cara untuk mengkombinasikan dua buah
deret angka yang menghasilkan deret angka yang ketiga. Secara matematis konvolusi
adalah integral yang mencerminkan jumlah lingkupan dari sebuah fungsi a yang digeser
atas fungsi b sehingga menghasilkan fungsi c. Konvolusi dilambangkan dengan asterisk
(*). Sehingga, a*b = c berarti fungsi a dikonvolusikan dengan fungsi b menghasilkan
fungsi c.

Defenisi Konvolusi Kontinu


Misalkan fungsi f,g terdefenisi pada bilangan riil 𝚁, konvolusi kontinu dari f dan g
didefenisikan oleh

( f∗g ) ( x )=∫ f ( y ) g ( x− y ) dy
−∞
Defenisi Konvolusi Diskrit
Misalkan fungsi f,g terdefenisi pada bilangan bulat 𝚉, konvolusi diskrit dari f dan g
didefenisikan oleh

( f∗g ) ( n ) = ∑ f ( m ) g(n−m)
m=−∞

Contoh Satu Dimensi:


f =[0 1 0 1 0 1]
g=[1 2 0 2]

Perhitungan secara manual:

1) 1 2 0 3 diputar 180º menjadi  2 0 2 1


2) 010101
2021 dibuat sejajar
3) zero padding

0 0 0 0 1 0 1 0 1 0 0 0  setelah penambahan zero padding


2021

4) 0 0 0 0 1 0 1 0 1 0 0 0 2(0)+0(0)+2(0)+1(0) = 0
2021
5) 0 0 0 0 1 0 1 0 1 0 0 0 2(0)+0(0)+2(0)+1(1) = 1
2021
6) 0 0 0 0 1 0 1 0 1 0 0 0 2(0)+0(0)+2(1)+1(0) = 2
2021
7) 0 0 0 0 1 0 1 0 1 0 0 0 2(0)+0(1)+2(0)+1(1) = 1
2021
8) 0 0 0 0 1 0 1 0 1 0 0 0 2(1)+0(0)+2(1)+1(0) = 4
2021
9) 0 0 0 0 1 0 1 0 1 0 0 0 2(0)+0(1)+2(0)+1(1) = 1
2021
10) 0 0 0 0 1 0 1 0 1 0 0 0 2(1)+0(0)+2(1)+1(0) = 4
2021
11) 0 0 0 0 1 0 1 0 1 0 0 0 2(0)+0(1)+2(0)+1(0) = 0
2021
12) 0 0 0 0 1 0 1 0 1 0 0 0 2(1)+0(0)+2(0)+1(0) = 2
2021
Maka hasil konvulusinya adalah 0 1 2 1 4 1 4 0 2

Perhitungan dengan MATLAB menggunakan sintaks

j= imfilter(f,g,’conv’,’full’)

menunjukkan hasil yang sama dengan perhitungan manual seperti berikut

Contoh Dua Dimensi:


a=[00 00 10]
1 2 1 3
b=[
3 1 ] diputar 180º menjadi  [
2 1]

Perhitungan secara manual:

1) 1 0 3 0 0 0 0 0
2 0 1 0 0 1 0
0 0 0 0 0
0 0 0 0 0

2) 0 1 0 3 0 0 0 0 0
0 2 0 1 0 1 0
0 0 0 0 0
0 0 0 0 0

3) 0 0 1 0 3 0 0
0 0 2 0 1 1 0 0 0 1
0 0 0 0 0
0 0 0 0 0

4)
0 0 0 1 0 3 0
0 0 0 2 1 1 0 0 0 1 2
0 0 0 0 0
0 0 0 0 0

5). 0 0 0 0 0 0 0 1 2
1 0 3 0 0 1 0 0
2 0 1 0 0 0 0
0 0 0 0 0
6). 0 0 0 0 0 0 0 1 2
0 1 0 3 0 1 0 0 0
0 2 0 1 0 0 0
0 0 0 0 0

7).
0 0 0 0 0 0 0 1 2
0 0 1 0 3 1 0 0 0 3
0 0 2 0 1 0 0
0 0 0 0 0

0 0 0 0 0 0 0 1 2
0 0 0 1 1 3 0 0 0 3 1
8). 0 0 0 2 0 1 0
0 0 0 0 0

0 0 0 0 0
9). 0 0 1 2
0 0 0 1 0
1 0 3 0 0 0 0 0 0 3 1
2 0 1 0 0 0 0 0

0 0 0 0 0 0 0 1 2
0 0 0 1 0 0 0 3 1
10).
0 1 0 3 0 0 0 0 0
0 2 0 1 0 0 0

11). 0 0 0 0 0
0 0 0 1 0 0 0 1 2
0 0 1 0 3 0 0 0 0 3 1
0 0 2 0 1 0 0 0 0 0
12). 0 0 0 0 0 0 0 1 2
0 0 0 1 0 0 0 3 1
0 0 0 1 0 3 0 0 0 0 0
0 0 0 2 0 1 0

Hasil
Konvolusi

Perhitungan dengan MATLAB menggunakan sintaks

C = imfilter(a,b,’conv’,’full’)

menunjukkan hasil yang sama dengan perhitungan manual seperti berikut


b. Korelasi
Korelasi merupakan teknik analisis yang termasuk dalam salah satu teknik
pengukuran asosiasi/hubungan (measures of association). Pengukuran asosiasi merupakan
istilah umum yang mengacu pada sekelompok teknik dalam statistik bivariat yang
digunakan untuk mengukur kekuatan hubungan antara dua variabel.

Rumus Korelasi:

c [ n ]= ∑ a [ k ] b[n+k ]
k=−∞

Contoh Satu Dimensi:


a=[0 1 0 1 0 1]
b=[1 2 0 4 ]

Perhitungan secara manual:

1) 010101
1024 dibuat sejajar
2) zero padding

0 0 0 0 1 0 1 0 1 0 0 0  setelah penambahan zero padding


1024

3) 0 0 0 0 1 0 1 0 1 0 0 0 1(0)+0(0)+2(0)+4(0) = 0
1024
4) 0 0 0 0 1 0 1 0 1 0 0 0 1(0)+2(0)+0(0)+4(1) = 4
1204
5) 0 0 0 0 1 0 1 0 1 0 0 0 1(0)+2(0)+0(1)+4(0) = 0
1204
6) 0 0 0 0 1 0 1 0 1 0 0 0 1(0)+2(1)+0(0)+4(1) = 6
1204
7) 0 0 0 0 1 0 1 0 1 0 0 0 1(1)+2(0)+0(1)+4(0) = 1
1204
8) 0 0 0 0 1 0 1 0 1 0 0 0 1(0)+2(1)+0(0)+4(1) = 6
1204
9) 0 0 0 0 1 0 1 0 1 0 0 0 1(1)+2(0)+0(1)+4(0) = 1
1204
10) 0 0 0 0 1 0 1 0 1 0 0 0 1(0)+2(1)+0(0)+4(0) = 2
1204
11) 0 0 0 0 1 0 1 0 1 0 0 0 1(1)+2(0)+0(0)+4(0) = 1
1204
Hasil Korelasi: 0 4 0 6 1 6 1 2 1
Perhitungan dengan MATLAB menggunakan sintaks

c= imfilter(a,b,’corr’,’full’)

menunjukkan hasil yang sama dengan perhitungan manual seperti berikut

Anda mungkin juga menyukai