Pendeteksian Warna Kulit Berdasarkan Distribusi Warna YCBCR.

Pendeteksian Warna Kulit berdasarkan Distribusi Warna YCbCr
Elrica Pranata / 0422002
Email : cha_nyo2@yahoo.com
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Marantha
Jalan Prof. Suria Sumantri 65, Bandung 40164, Indonesia

ABSTRAK
Warna kulit sering sebagai sumber informasi pada proses pendeteksian. Informasi
yang diperoleh dari pendeteksian warna kulit (skin detection) sangat berguna, misalnya
dalam proses pemfilteran konten web yang bersifat pornografi dari internet deteksi warna
kulit digunakan untuk mengkategorikan suatu gambar termasuk porno atau tidak.
Pada Tugas Akhir ini telah dibuat program untuk mendeteksi warna kulit dengan
menggunakan dua cara yaitu dengan cara pembandingan dengan daerah warna kulit dan
dengan cara menggunakan look up table. Pada cara pembandingan dengan batas daerah
warna kulit, nilai YCbCr piksel- piksel dari gambar yang dideteksi dibandingkan dengan
batas nilai YCbCr dari sampel warna kulit, sedangkan pada penggunaan look up table
nilai YCbCr piksel- piksel dari gambar yang dideteksi dibandingkan dengan nilai- nilai
YCbCr yang didapat dari setiap sampel yang digunakan, untuk mendeteksi piksel tersebut
termasuk warna kulit atau bukan kulit.
Hasil uji coba terhadap perangkat lunak yang telah direalisasi dengan
menggunakan sepuluh sampel gambar yang mengandung warna kulit, dan diperoleh

presentase keberhasilan untuk pendeteksian menggunakan cara pembandingan dengan
batas daerah warna kulit adalah 57%, sedangkan presentase keberhasilan untuk
penggunaan look up table adalah 25.7%. dari hasil tersebut dapat dismpulkan bahwa cara

look up table menghasilkan pendeteksian yang lebih baik jika dibandingkan dengan cara
pembandingan dengan batas daerah warna kulit.

Kata kunci : citra, pendeteksian warna kulit, YCbCr, look up table

i

Skin Color Detection Based on YCbCr Color Distribution
Elrica Pranata / 0422002
Email : cha_nyo2@yahoo.com
Electrical Engineering, Engineering Faculty, Maranatha Christian University
Prof. drg. Suria Sumantri 65 Street, Bandung 40164, Indonesia

ABSTRACT
Skin color often used for information source in detection process. Information
which is gotten by skin detection is very useful, for example in filtering process at web

content, to avoid adultery picture, skin detection used to categorize a picture is contain an
adultery picture or not.
In this Final Project has been done program to detect skin color with two way ,
that is comparison with skin color region border and look up table. In comparison with
skin color region border, value of YCbCr pixels from digital image that have been
detected is compared to region border of YCbCr value by skin color sample, while in
look up table value of YCbCr pixels from digital image that has been detected is compare
to YCbCr values which is gotten by every sample that being used to detect the pixels that
is skin color or not
The result of software which is done the test of ten sample images that contain
skin color is obtained success percentage for comparison with skin color region border is
57%, while in success percentage for look up table is 74.3%. According to that results we
can conclude that look up table method is relatively better than comparison with skin
color region border method

Keywords: image, skin color detection, YCbCr, look up table

ii

DAFTAR ISI


ABSTRAK

i

ABSTRACT

ii

KATA PENGANTAR

iii

DAFTAR ISI

v

DAFTAR TABEL

vii


DAFTAR GAMBAR

viii

BAB I PEDAHULUAN
I. 1.

Latar Belakang Masalah

1

I. 2.

Perumusan Masalah

2

I. 3.


Tujuan

2

I. 4.

Batasan Masalah

3

I. 5.

Metodologi

3

I. 6.

Sistematika Penulisan


3

BAB II LANDASAN TEORI
II. 1.

Pengolahan Citra

5

II. 2.

Computer Vision

7

II. 3.

Deteksi Warna Kulit

8


II.4.

Statistik
II. 4. 1. Pengertian Statistik

9

II. 4. 2. Pengertian dan Pengumpulan Data

11

iii

BAB III PERANCANGAN DAN REALISASI
III. 1. Pembuatan Basis Data

15

III. 2. Pengolahan Data


17

III. 3. Pendeteksian Warna Kulit dengan Cara Membandingkan dengan
Batas Daerah Warna Kulit

22

III. 4. Pendeteksian Warna Kulit dengan Menggunakan Look Up Table

25

III. 5. Perancangan Antar Muka (User Interface)

28

BAB IV DATA PENGAMATAN DAN ANALISA DATA
IV. 1. Pengujian

41


IV. 2. Analisa Data

47

BAB V KESIMPULAN DAN SARAN
V. 1.

Kesimpulan

52

V. 2.

Saran

53

DAFTAR PUSTAKA


54

LAMPIRAN A- LISTING PROGRAM

A

LAMPIRAN B- SAMPEL GAMBAR WARNA KULIT

B

LAMPIRAN C- LOOK UP TABLE

C

iv

DAFTAR TABEL

Tabel 2. 1


Hirarki pemrosesan computer vision dan contoh algoritmanya

7

Tabel 3. 1

Tabel Distribusi Y

18

Tabel 3. 2

Tabel Distribusi Cb

19

Tabel 3. 3

Tabel Distribusi Cr

20

Tabel 3. 4

Komponen dan properti program utama

29

Tabel 3. 5

Komponen dan properti program untuk membuat basis data

36

Tabel 4. 1

Hasil uji coba pendeteksian warna kulit

44

Tabel 4. 2

Tabel perbandingan hasil pendeteksian warna kulit

49

v

DAFTAR GAMBAR

Gambar 2. 1

Diagram blok pengenalan pola

6

Gambar 3. 1

Diagram blok proses pendeteksian warna kulit

15

Gambar 3. 2

Diagram alir pembuatan basis data

16

Gambar 3. 3

Diagram alir sub program untuk mengubah nilai RGB ke YCbCr

17

Gambar 3. 4

Grafik daerah warna kulit

21

Gambar 3. 5

Diagram alir pendeteksian warna kulit dengan cara pembandingan
dengan batas daerah warna kulit

Gambar 3. 6

Diagram alir pendeteksian warna kulit dengan menggunakan

look up table
Gambar 3. 7

24

26

Diagram alir sub program pembandingan YCbCr piksel dengan

look up table

28

Gambar 3. 8

Tampilan program utama

29

Gambar 3. 9

Tampilan program untuk membuat basis data

36

Gambar 4. 1

Gambar sampel untuk uji coba

41

Gambar 4. 2

Proses pendeteksian warna kulit dengan cara pembandingan
dengan batas daerah warna kulit

Gambar 4. 3

Gambar 4.4

43

Proses pendeteksian warna kulit dengan menggunakan
look up table

44

Warna kulit pada gambar diputihkan secara manual

48

vi

LISTING PROGRAM PADA MICROSOFT VISUAL BASIC 6.0

1. Program untuk Pembuatan Basis Data
Private Sub Command1_Click()
Picture1.AutoRedraw = True
n=0
X = Picture1.ScaleWidth
Y = Picture1.ScaleHeight
For brs = 1 To Y
For klm = 1 To X
wrn = Picture1.Point(klm, brs)
k = wrn And RGB(255, 0, 0)
l = Int((wrn And RGB(0, 255, 0)) / 256)
m = Int(Int((wrn And RGB(0, 0, 255)) / 256) / 256)
If k = 255 And l = 255 And m = 255 Then
k = 255
l = 255
m = 255
n=n+1
Else
k=0
l=0
m=0
End If

Picture1.PSet (klm, brs), RGB(k, l, m)
Next klm
Next brs
Text2.Text = n

End Sub
Private Sub command2_Click()
Picture1.AutoRedraw = True
n=0
X = Picture1.ScaleWidth
Y = Picture1.ScaleHeight
For brs = 1 To Y
For klm = 1 To X
wrn = Picture1.Point(klm, brs)

k = wrn And RGB(255, 0, 0)
l = Int((wrn And RGB(0, 255, 0)) / 256)
m = Int(Int((wrn And RGB(0, 0, 255)) / 256) / 256)
Y = 0.257 * k + 0.504 * l + 0.098 * m + 16
cb = 0.148 * k - 0.291 * l + 0.439 * m + 128
cr = 0.439 * k - 0.368 * l - 0.071 * m + 128
If Y > 53.697 And Y < 234.261 And cb > 131.428 And cb < 203.42 And cr >
126.095 And cr < 183.67 Then
k = 255
l = 255
m = 255
n=n+1
Else
k=0
l=0
m=0
End If

Picture1.PSet (klm, brs), RGB(k, l, m)
Next klm
Next brs
Text2.Text = n
End Sub
Private Sub Command3_Click()
Picture1.AutoRedraw = False
Open "testfile2.txt" For Input As #1
n=0
X = Picture1.ScaleWidth
Y = Picture1.ScaleHeight
For brs = 1 To Y
For klm = 1 To X
wrn = Picture1.Point(klm, brs)
k = wrn And RGB(255, 0, 0)
l = Int((wrn And RGB(0, 255, 0)) / 256)
m = Int(Int((wrn And RGB(0, 0, 255)) / 256) / 256)

Y = 0.257 * k + 0.504 * l + 0.098 * m + 16
cb = 0.148 * k - 0.291 * l + 0.439 * m + 128
cr = 0.439 * k - 0.368 * l - 0.071 * m + 128

Do
Input #1, a, B, c, d, e, f
If (Y >= Val(B) And Y = Val(d) And cb = Val(f) And cr