Anda di halaman 1dari 19

LAPORAN PRAKTIKUM

PEMOSROSESAN SINYAL DIGITAL


OPERASI SEGMENTASI CITRA

Disusun oleh:

Nama : Rachel Dalmara


NIM : 021600489
Prodi : Elektronika Instrumentasi
Jurusan : Teknofisika Nuklir
Dosen : Dr. Muhtadan, M. Eng

SEKOLAH TINGGI TEKNOLOGI NUKLIR


BADAN TENAGA NUKLIR NASIONAL
YOGYAKARTA
2019
I. TUJUAN
1. Mempelajari fungsi segmentasi thersholding
2. Mempelajari fungsi segmentasi berbasis region

II. PERALATAN YANG DIGUNAKAN


1. Citra gradient_with_text.tif
2. Crack.tif

III. DASAR TEORI


1. Segmentasi
Segmentasi pada citra merupakan serangkaian proses partisi citra digital menjadi
beberapa segmen yang bertujuan untuk menarik informasi dari suatu gambar agar gambar
mudah untuk dianalisis. Segmentasi ini didasarkan pada pengukuran yang diambil dari
citra, seperti greylevel, warna, tekstur, kedalaman atau gerak. Segmentasi pada citra
merupakan langkah awal yang sangat penting dalam proses memahami informasi pada
gambar secara keseluruhan. Biasanya segmentasi citra digunakan untuk pengenalan obyek,
mencari batas seperti garis atau kurva, kompresi gambar dan lain-lain.
2. Thresholding
Thresholding merupakan salah satu metode segmentasi citra yang memisahkan
antara objek dengan background dalam suatu citra berdasarkan pada perbedaan tingkat
kecerahannya atau gelap terang nya. Region citra yang cenderung gelap akan dibuat
semakin gelap (hitam sempurna dengan nilai intensitas sebesar 0), sedangkan region citra
yang cenderung terang akan dibuat semakin terang (putih sempurna dengan nilai intensitas
sebesar 1). Oleh karena itu, keluaran dari proses segmentasi dengan metode thresholding
adalah berupa citra biner dengan nilai intensitas piksel sebesar 0 atau 1. Setelah citra sudah
tersegmentasi atau sudah berhasil dipisahkan objeknya dengan background, maka citra
biner yang diperoleh dapat dijadikan sebagai masking utuk melakukan proses cropping
sehingga diperoleh tampilan citra asli tanpa background atau dengan background yang
dapat diubah-ubah.

3. Region Growing

Region Growing adalah metode pendekatan untuk segementasi citra dengan dimulai
dari beberapa piksel (seeds) yang merepresentasikan daerah gambar yang berbeda dan
tumbuh berkembang sehingga membentuk wilayah yang lebih lebar pada gambar. Untuk
menggunakan metode ini diperlukan aturan yang menjelaskan mekanisme pertumbuhan
dan aturan homogenitas setiap daerah setelah tumbuh. Namun pada penelitian ini region
growing tidak dimulai dari seeds melainkan dari inisialisasi awal region yang diperoleh dari
binary segmentation. Dengan menggunakan inisialisasi awal region proses region growing
menjadi lebih cepat dalam kompleksitas waktu. Langkah pertama cara kerja metode ini
yaitu dengan menentukan inisialisasi awal. Kemudian region akan berkembang menjadi
sebuah wilayah yang sebenarnya dengan cara mendeteksi apakah piksel-piksel terluar dari
region memiliki kriteria keanggotaan dari region.

IV. LANGKAH KERJA


1. Global thresholding
a. Load dan tampilkan citra uji
I = imread(’coins.png’);
figure, imshow(I), title(’Original Image’);
b. Tampilkan histrogram citra tersebut, dan tentukan threshold yang akan
digunakan.
figure, imhist(I), title(’Histogram of Image’);
c. Gunakan tool data cursor pada grafik, dan tentukan nilai pada histogram
d. Tentukan threshold dari nilai yang diperoleh pada histogram dan diterapkan pada
program.
T = 85; I_thresh = im2bw(I,( T / 255));
figure, imshow(I_thresh), title(’Threshold
Image(heuristic)’);
e. Gunakan fungsi graythresh untuk menghasilkan nilai threshold.
T2 = graythresh(I);
I_thresh2 = im2bw(I,T2);
figure, imshow(I_thresh2), title(’Threshold Image
(graythresh)’);
f. Jawablah pertanyaan berikut dan bahas dalam laporan:
1. Pada histogram tersebut manakah puncak yang menyatakan background dan yang
menyatakan obyek?
2. Apa fungsi dari perintah IM2BW? berikan penjelasannya!
3. Kenapa dalam program nilai Threshold dibagi dengan 255?
4. Bagaimana hasil dari fungsi graythresh dibanding dengan fungsi heuristik
dalam menentukan nilai T.
2. Adaptive thresholding
Dalam percobaan sebelumnya, citra coin.png memiliki histogram yang bersifat
bimodal, sehingga mudah dilakukan segmentasi threshold dengan nilai T secara
heuristik maupun dengan graythresh. Percobaan berikut terkait dengan segmentasi
thresholding untuk histogram yang tidak bimodal.

a. Close seluruh figure dan variabel


b. Load citra gradient_with_text dan siapkan subplot.
I = imread(’gradient_with_text.tif’)
figure, imshow(I), title(’Original Image’);
c. Terapkan global threshold pada citra
I_gthresh = im2bw(I,graythresh(I));
figure, imshow(I_gthresh), title(’Global Thresholding’);
figure, imhist(I), title(’Histogram of Original’);
d. Close seluruh figures
e. Buka m-file editor
f. Buatlah fungsi baru sebagai berikut, dan simpan sesuai nama fungsinya
function y = adapt_thresh(x)
y = im2bw(x,graythresh(x));
g. Jalankan operasi blok dengan perintah sebagai berikut
I_thresh = blkproc(I,[10 10],@adapt_thresh);
h. Tampilkan hasil citra asli, dan citra thresholding tersebut.
figure
subplot(1,2,1), imshow(I), title(’Original Image’);
subplot(1,2,2), imshow(I_thresh), title(’Adaptive
Thresholding’);
i. Hitunglah standar deviasi blok 10x10 piksel, pada bagian yang terdapat teks dan
bagian lain yang tidak ada teks pada citra.
std_without_text = std2(I(1:10, 1:10))
std_with_text = std2(I(100:110, 100:110))
j. Modifikasi fungsi adapt_thresh dengan perintah berikut
function y = adapt_thresh(x)
if std2(x) < 1
y =ones(size(x,1),size(x,2));
else
y = im2bw(x,graythresh(x)
end
k. Kemudian jalankan kembali operasi blok (pada command window) dan amati
hasilnya
I_thresh2 = blkproc(I,[10 10],@adapt_thresh);
figure, subplot(1,2,1), imshow(I), title(’Original
Image’);
subplot(1,2,2),imshow(I_thresh2), title(’Adaptive
Thresholding’);

l. Jawablah pertanyaan dan dibahas di laporan

1. Bagaimana hasil thresholding dengan operasi blok dibandingkan dengan hasil global
thresholding?
2. Bagaimana fungsi yang dibuat dalam memberikan label suatu blok piksel pada
background?
3. Bagaimana hasil fungsi baru dibandingkan deengan fungsi yang lama?
4. Jelaskan yang menjadi kondisi/batasan pada fungsi threshold adaptif yang dibuat.
3. Region Grow

Pada percobaan ini, cobalah contoh program dari algoritma region grow.
a. Buatlah fungsi dengan nama regiongrow.m sebagai berikut

b. Lalu load citra crack.tif.


c. Jalankan perintah berikut pada command window.
[g, NR, SI, TI]=regiongrow(f, 1, 0.26);

Penjelasan:

Fungsi regiongrow digunakan untuk melakukan segmentasi berbasis region. Masukan


fungsi adalah nilai S yaitu nilai titik seed yang diperoleh dari nilai piksel tertinggi dalam
cacat pada citra crack.tif. Nilai maksimumnya adalah 255 (putih) sehingga nilai S adalah 1
(rentang S adalah [0 1]). Berikutnya adalah nilai T yaitu nilai threshold yang diperoleh dari
mengamati histogram citra. Pada histogram area pengelasan diawali sekitar 65, sehingga
dalam range 0-1 nilai 65 sama dengan 0,26 (65/255).

d. Jawablah pertanyaan dalam pembahasan laporan.


1. Berdasarkan program diatas, jelaskan bagaimana citra seed (SI) dan citra threshold
(TI) terbentuk.
2. Berdasarkan program, terdapat variabel NR, yang merupakan jumlah region dari citra
keluaran segmentasi. Jelaskan bagaimana NR terbentuk dan apa yang dimaksud
dengan jumlah region (NR).

V. PEMBAHSAN
 Percobaan 1
Pada percobaan kali ini mengenai global thersholding menampilkan sebuah fungsi
untuk mengenai gambar asli dari suatu citra. Program dapat dilihat pada gambar dibawah
ini.

Dari program diatas kemudian program dapat di running dan akan muncul tampilan
seperti gambar dibawah ini.
Gambar diatas merupakan tampilan dari gambar asli sebuah citra yang akan dilakukan
segmentasi pada fungsi-fungsi berikutnya.

Pada percobaan selanjutnya yaitu menampilkan 2 gambar yaitu gambar asli dan histogram
dari gambar asli. Histogram yang ditampilkan tersebut mengumpul di dua titik yang berbeda.
Titik pertama mengalami kenaikan yang sangat signifikan. Namun pada titik kedua berada
dibawah titik pertama yang mengalami kenaikan namun tidak terlalu signifikan.

Pada percobaan selanjutnya yaitu menentukan threshold dan nilai dari histogram
tersebut dengan menggunakan fungsi dibawah ini. Fungsi tersebut terdapat bagian yang
digunakan untuk mengisikan nilai threshold yang akan digunakan yaitu T=85. Kemudian
selain itu menggunakan pula fungsi IM2BW yang akan dijelaskan pada bagian tugas. Setelah
program dituliskan dalam script kemudian dapat di running dan memunculkan 3 gambar
sekaligus, yaitu gambar asli citra, histogram dan gambar yang telah melalui fungsi threshold.
Yang kemudian gambar threshold tersebut mengalami perubahan dari gambar asli citra yaitu
gambar dari koin-koin tersebut menjadi putih, hal itu disebabkan karena beberapa pengaturan
yang dilakukan pada bagian threshold tersebut.

Kemudian percobaan selanjutnya, penggunaan fungsi graythresh merupakan pengaturan


warna yang digunakan pada threshold. Kemudian dari fungsi tersebut di running dan akan
mendapatkan hasil pada figure 4 dengan perubahan yang terjadi pada graythresh. Dari hasil
pada figure 4 tersebut ada 1 gambar koin dengan perbedaan warna mencolok dibandingkan
dengan gambar yang ada pada figure. Hal tersebut merupaka akibat dari pengaturan yang
dilakukan pada graythresh.
Pada percobaan 1 ini mempunyai tugas sebagai berikut :

1. Pada histogram tersebut manakah puncak yang menyatakan background dan yang
menyatakan obyek?
Pada histogram yang menyatakan puncak adalah bagian awal, dan menyatakan objek
adalah bagian akhir.

2. Apa fungsi dari perintah IM2BW? berikan penjelasannya!


IM2BW merupakan fungsi yang digunakan untuk membaca sebuah citra pada aplikasi
threshold, dengan penggunaan fungsi data yang telah diatur.
3. Kenapa dalam program nilai Threshold dibagi dengan 255?
Karena penggunaan data maksimal dalam threshold adalah 256 data, sedangkan 255 itu
dihitung mulai dari 0 hingga 255.
4. Bagaimana hasil dari fungsi graythresh dibanding dengan fungsi heuristik dalam
menentukan nilai T.
Hasil yang ditampilkan menggunakan fungsi graytresh lebih jelas karena terdapat
perbedaan yang mencolok.

 Percobaan 2

Pada percobaan kali ini mengenai adaptive thresholding, dalam percobaan sebelumnya,
citra coin.png memiliki histogram yang bersifat bimodal, sehingga mudah dilakukan
segmentasi threshold dengan nilai T secara heuristik maupun dengan graythresh. Percobaan
berikut terkait dengan segmentasi thresholding untuk histogram yang tidak bimodal.
Algoritma thresholding adaptif merupakan operasi yang memisahkan latar depan dari latar
belakang dengan pencahayaan tidak seragam.

Pada langkah pertama dilakukan load file citra yang akan digunakan yaitu citra gradient
with text dengan cara

I = imread(’gradient_with_text.tif’);

Kemudian tampilkan gambar dan beri judul dengan cara

figure, imshow(I), title(’Original Image’);

Maka citra yang muncul adalah sebagai berikut:

Selanjutnya terapkan global threshold pada citra

I_gthresh = im2bw(I,graythresh(I));
figure, imshow(I_gthresh), title(’Global Thresholding’);
figure, imhist(I), title(’Histogram of Original’);

Maka akan dihasilkan citra sebagai berikut :

Hasil dari proses ini pada tiap layernya akan menghasilkan citra dengan background
berwarna putih (dalam biner bernilai 1) karena kita akan mensegmentasi citra maka
background harus memiliki nilai 0.

Selanjutnya dilakukan pembuatan m-file baru dengan program sebagai berikut :

function y = adapt_thresh(x)
y = im2bw(x,graythresh(x));

Kemudian program dinamai sesuai dengan adapt thresh. Jalankan operasi blok dengan
perintah sebagai berikut :

I_thresh = blkproc(I,[10 10],@adapt_thresh);

Selanjutnya ditampilkan hasil citra asli, dan citra thresholding tersebut.


Dihasilkan citra sebagai berikut :

Dari gambar diatas dapat diekathui bahwa, gambar hasil thresholding menunjukkan gambar
menjadi hitam putih dengan intensitas yang sesuai sedangkan untuk pemisahan antara
background dan teksnya masih belum rapi. Karena menggunakan blok 10x10 piksel.

Selanjutnya dilakukan penghitungan standar deviasi blok 10x10 piksel, pada bagian
yang terdapat teks dan bagian lain yang tidak ada teks pada citra. Didapatkan hasil sebagai
berikut :
Pada bagian tanpa teks bernilai 0,821 dan pada bagian dengan teks bernilai 49,1353.

Kemudian pada bagian adapt thresh dimodifikasi dengan fungsi sebagai berikut :

function y = adapt_thresh(x)
if std2(x) < 1
y = ones(size(x,1),size(x,2))
else

end
Sehingga dihasilkan citra threshold sebagai berikut :

Dari gambar diatas dapat diamati hasil adaptif thresholding yang dapat memisahkan
antara tulisan dan background secara jelas. Backgroun berubah menjadi putih seluruhnya
dan teks berwarna hitam keseluruhan.

Jawaban atas pertanyaan pada percobaan kedua adalah sebagai berikut:

1. Pada operasi global thresholding citra yang dihasilkan berupa gambar hitam putih
tetapi untuk intensitas hitam dan putih yang dihasilkan hanya dirata-rata atau citra
yang agak gelap dideteksi sebagai hitam sehingga tidak terlalu dapat membedakan
citra gray. Pada operasi blok, citra yang dihasilkan dapat membedakan intensitas
gambar original sehingga gambar lebih dapat dibaca tulisannya.
2. Bagaimana fungsi yang dibuat dalam memberikan label suatu blok piksel pada
background?

Pada fungsi yang pertama menggunakan graythresh sebagai operasi blok yang
dijalankan.
Pada fungsi yang kedua menggunakan fungsi dengan maksud jika ukuran dari suatu
nilai keabuan ukurannya <1 maka akan dilakukan operasi y = ones(size(x,1),size(x,2)),
sedangkan jika nilainya tidak memenuhi maka akan dilakukan operasi graythresh.
3. Bagaimana hasil fungsi baru dibandingkan dengan fungsi yang lama?
Dari citra yang dihasilkan sebagai berikut dapat diamati:

Gambar fungsi lama dan fungsi baru


Dapat diamati bahwa gambar yang dihasilkan pada fungsi baru lebih baik dari
fungsi lama karena dapat membedakan warna dengan baik karena fungsi yang
menyesuaikan,
4. Jelaskan yang menjadi kondisi/batasan pada fungsi threshold adaptif yang dibuat.

Dari fungsi diatas dapat diketahui, jika nilai standar deviasi dari elemen matriks
lebih kecil dari 1 maka operasi yang dilakukan adalah y = ones(size(x,1),size(x,2)).
Jika tidak memenuhi maka dilakukan operasi graythresh
y = im2bw(x,graythresh(x));

 Percobaan 3
Pada percobaan kali ini mengenai regiongrow, dan menggunakan citra crak.tif
yang memiliki format ‘.tif’. Citra original dan program dapat dilihat dibawah ini.
Citra Original

Kemudian save program kedalam folder MATLAB, selanjutnya load gambar crack.tif
pada command window dengan perintah f=imread(“crack.tif”) . Selanjutnya jalankan
perintah [g, NR, TI]=regiongrowf, 1, 0.26) dan didapatkan beberapa tipe variabel pada
workspace yaitu SI, TI, dan g serta 1 buah variabel NR yang merupakan jumlah region.
Perintah regiongrow akan menghasilkan gambar dengan warna pixel yang telah dipilih atau
seeds yang kemudian akan direpresentasikan daerah gambar dengan pixel seed tersebut
seperti pada gambar X.
Variabel Workspace

1. Pembentukan Citra SI dan TI


Perintah regiongrow untuk citra SI akan dilakukan segmentasi gambar menjadi
2 tipe yaitu 1 dan 0. Dari program diatas dapat diketahui bahwa tiap pixel akan
dikonversi menjadi 1 dan 0. Pixel yang memiliki nilai 1 merupakan pixel dengan nilai
tertinggi (255) atau berwarna putih sedangkan 0 merupakan pixel dengan nilai terendah
(0) atau berwana hitam. Gambar hasil eksekusi dapat dilihat pada gambar dibawah ini.

Citra SI
Dari gambar tersebut dapat dilihat bahwa gambar crack berwana putih saja yang
ditampilkan karena crack tersebut memiliki nilai 255 sedangkan pixel lain dengan nilai
dibawah itu tidak ditampilkan.
Sedangkan untuk citra TI gambar yang ditampilkan hitam dan putih dengan nilai
tertinggi dan terendah yang memiliki range tertentu. Pada program dapat dilihat bahwa,
range tersebut adalah 65-255. Pixel yang memiliki nilai 6-255 akan ditampilkan sebagai
warna putih dan lainnya dengan warna hitam. Gambar hasil eksekusi dapat dilihat
dibawah ini.
Citra TI
Dari gambar tersebut dapat dilihat bahwa gambar yang berwarna putih
merupakan pixel yang memiliki nilai 65-255. Rentang ini dapat diubah-ubah sesuai
dengan kebutuhan.
2. Jumlah Region NR
NR merupakan jumlah region yang terdeteksi oleh komputer. Sedangkan region
adalah jumlah kumpulan pixel yang ditampilkan berwarna putih, dan terpisah oleh pixel
non-region yang berwarna hitam. Pada program, pendeteksian region dilakukan pada
citra gambar yang merupakan gabungan antara citra SI dan TI dengan variabel nama
“g”. Gambar dapat dilihat dibawah ini.

Citra g
Dari gambar yang akan dipakai, komputer akan meghitung jumlah regionnya.
Dari gambar diatas diperoleh jumlah region yang terdeteksi adalah 10 (NR =10)

VI. KESIMPULAN
1. Hasil yang ditampilkan menggunakan fungsi graytresh lebih jelas dibandingkan
dengan fungsi heuristic pada segmentasi thresholding.
2. Pada operasi global thresholding, citra yang dihasilkan berupa gambar hitam putih
tetapi untuk intensitas hitam dan putih yang dihasilkan hanya dirata-rata atau citra
yang agak gelap dideteksi sebagai hitam sehingga tidak terlalu dapat membedakan
citra gray. Pada operasi blok, citra yang dihasilkan dapat membedakan intensitas
gambar original sehingga tulisan pada gambar lebih dapat terbaca.
3. Citra SI mensegmentasikan gambar berdasarkan satu seed pixel terpilih ( 0 dan 255)
sedangkan citra TI mensegmentasikan gambar berdasarkan rentang nilai seed pixel
yang dipilih (pada percobaan kali ini 65-255).

Anda mungkin juga menyukai