Peningkatan Kualitas Video Hasil Rekaman Closed Circuit Television (CCTV) Menggunakan Median Filter Chapter III V
24
BAB 3
ANALISIS DAN PERANCANGAN
Bab ini membahas tentang implementasi metode median filter dalam proses
peningkatan kualitas video hasil rekaman CCTV (Closed Circuit Television). Bab ini
juga membahas tentang data yang digunakan, proses pemisahan video menjadi citracitra, pre-processing, dan menyatukan citra-citra menjadi video.
3.1. Arsitektur Umum
Rancangan sistem yang diajukan pada penelitian ini dapat dilihat pada Gambar 3.1.
Gambar 3.1 menunjukkan arsitektur umum dari metode median filter untuk
peningkatan kualitas video yang terdiri dari beberapa langkah. Langkah-langkah yang
dimaksud adalah sebagai berikut: pengumpulan file video hasil rekaman cctv sebagai
data input; melakukan pre-processing terhadap video dimana video dipisah menjadi
citra-citra; pembacaan nilai piksel pada setiap citra. Filtering menggunakan median
filter;Perangkaian citra menjadi video. Output yang dihasilkan setelah semua proses
selesai dilakukan adalah video tanpa derau(noise).
Universitas Sumatera Utara
25
Universitas Sumatera Utara
26
3.2. Data Input
Data yang digunakan dalam penelitian ini adalah video lalulintas(traffic) hasil
rekaman Closed Circuit Television (CCTV). Data yang digunakan berjumlah 4 video
dengan format MPEG-4 (*.mp4) dan dalam bentuk grayscale. Spesifikasi file video
dapat dilihat pada Tabel 3.1.
Tabel 3.1. Spesifikasi file video yang digunakan dalam penelitian
No
Nama Video
Durasi(detik)
Ukuran(Byte)
Sumber
1.
Traffic_1.mp4
4
12,594,715
Universitas Karlsruhe
2.
Lalulintas.mp4
82
5,300,704
Area Traffic Control System
(ATCS) Dinas Perhubungan
Wilayah Medan
3
Lalulintas_2.mp4
61
7,127,738
Area Traffic Control System
(ATCS) Dinas Perhubungan
Wilayah Medan
4
Lalulintas_3.mp4
111
4,397,129
Area Traffic Control System
(ATCS) Dinas Perhubungan
Wilayah Medan
3.3. Pre-Processing
Pada tahap ini, video akan dipisah menjadi citra-citra dengan jumlah yang sesuai
dengan frame rate video. Sebagai contoh jika video memiliki frame rate 30 frame per
second (fps) dan durasi 4 detik, maka citra yang akan dihasilkan berjumlah 30×4 =
120 citra. citra yang dihasilkan dari proses ini memiliki format JPEG dengan resolusi
yang sama dengan video. Pseudocode pemisahan video dapat dilihat pada Gambar
3.2.
Universitas Sumatera Utara
27
Start
Input video file
change video to image
get video path
set image output location
set image name
Convert video to image using FFMPEG
end of changing video to image
Universitas Sumatera Utara
28
Pada Gambar 3.3. (a) dapat dilihat bahwa video traffic_1.mp4 berada pada
folder video telah dipisahkan menjadi 121 citra sesuai dengan frame rate video yang
dapat dilihat pada Gambar 3.3. (b). Citra yang dihasilkan memiliki format penamaan
menggunakan angka yaitu 1.jpg, 2.jpg, 3.jpg, hingga citra akhir 121.jpg.
3.4. Median Filter
Setelah video dipisahkan menjadi citra-citra yang berdiri sendiri, tahap selanjutnya
yang dilakukan adalah menghilangkan derau(noise) pada setiap citra. Proses ini dapat
dilakukan dengan metode median filter. Filtering menggunakan median filter dimulai
dengan melakukan pembacaan nilai piksel citra. Setelah piksel citra didapatkan, maka
akan dilakukan penambahan nilai piksel di sekeliling citra. Tahap selanjutnya adalah
mengatur ukuran matriks filter(mask) menjadi 3x3. Kemudian nilai piksel akan
diurutkan secara ascending pada setiap matriks filter(mask). Setelah proses
pengurutan nilai piksel dilakukan, maka nilai median pada setiap matriks filter(mask)
dapat dihitung. Nilai median hasil penghitungan ini yang akan digunakan untuk
menggantikan nilai piksel asli citra.
.
3.4.1. Membaca Nilai Piksel Citra
Pembacaan nilai piksel citra dilakukan pada class GetPixel. Proses pembacaan
diawali dengan mendapatkan ukuran tinggi citra menggunakan getHeight() dan
lebar citra menggunakan getWidth(). Kemudian, nilai RGB (Red,Green,Blue)
citra akan diperoleh menggunakan function getRGB() sesuai dengan ukuran tinggi
dan lebar citra. Nilai RGB ini akan dikonversi menjadi grayscale dengan operasi
bitwise pada function getRGBArray(). Setelah nilai piksel dalam bentuk grayscale
didapatkan, nilai ini akan dimasukkan ke dalam matriks citra dengan function
getMatrix().
Universitas Sumatera Utara
29
Output yang didapatkan pada proses pembacaan nilai piksel ini berupa array
matriks citra dengan ukuran tinggi × lebar
yang disimpan dalam variabel
matrixImage[][]. Pseudocode pembacaan nilai citra dapat dilihat pada Gambar
3.4.
Start
Input image file
get pixel image
for (every file)
get height and width image
for i
BAB 3
ANALISIS DAN PERANCANGAN
Bab ini membahas tentang implementasi metode median filter dalam proses
peningkatan kualitas video hasil rekaman CCTV (Closed Circuit Television). Bab ini
juga membahas tentang data yang digunakan, proses pemisahan video menjadi citracitra, pre-processing, dan menyatukan citra-citra menjadi video.
3.1. Arsitektur Umum
Rancangan sistem yang diajukan pada penelitian ini dapat dilihat pada Gambar 3.1.
Gambar 3.1 menunjukkan arsitektur umum dari metode median filter untuk
peningkatan kualitas video yang terdiri dari beberapa langkah. Langkah-langkah yang
dimaksud adalah sebagai berikut: pengumpulan file video hasil rekaman cctv sebagai
data input; melakukan pre-processing terhadap video dimana video dipisah menjadi
citra-citra; pembacaan nilai piksel pada setiap citra. Filtering menggunakan median
filter;Perangkaian citra menjadi video. Output yang dihasilkan setelah semua proses
selesai dilakukan adalah video tanpa derau(noise).
Universitas Sumatera Utara
25
Universitas Sumatera Utara
26
3.2. Data Input
Data yang digunakan dalam penelitian ini adalah video lalulintas(traffic) hasil
rekaman Closed Circuit Television (CCTV). Data yang digunakan berjumlah 4 video
dengan format MPEG-4 (*.mp4) dan dalam bentuk grayscale. Spesifikasi file video
dapat dilihat pada Tabel 3.1.
Tabel 3.1. Spesifikasi file video yang digunakan dalam penelitian
No
Nama Video
Durasi(detik)
Ukuran(Byte)
Sumber
1.
Traffic_1.mp4
4
12,594,715
Universitas Karlsruhe
2.
Lalulintas.mp4
82
5,300,704
Area Traffic Control System
(ATCS) Dinas Perhubungan
Wilayah Medan
3
Lalulintas_2.mp4
61
7,127,738
Area Traffic Control System
(ATCS) Dinas Perhubungan
Wilayah Medan
4
Lalulintas_3.mp4
111
4,397,129
Area Traffic Control System
(ATCS) Dinas Perhubungan
Wilayah Medan
3.3. Pre-Processing
Pada tahap ini, video akan dipisah menjadi citra-citra dengan jumlah yang sesuai
dengan frame rate video. Sebagai contoh jika video memiliki frame rate 30 frame per
second (fps) dan durasi 4 detik, maka citra yang akan dihasilkan berjumlah 30×4 =
120 citra. citra yang dihasilkan dari proses ini memiliki format JPEG dengan resolusi
yang sama dengan video. Pseudocode pemisahan video dapat dilihat pada Gambar
3.2.
Universitas Sumatera Utara
27
Start
Input video file
change video to image
get video path
set image output location
set image name
Convert video to image using FFMPEG
end of changing video to image
Universitas Sumatera Utara
28
Pada Gambar 3.3. (a) dapat dilihat bahwa video traffic_1.mp4 berada pada
folder video telah dipisahkan menjadi 121 citra sesuai dengan frame rate video yang
dapat dilihat pada Gambar 3.3. (b). Citra yang dihasilkan memiliki format penamaan
menggunakan angka yaitu 1.jpg, 2.jpg, 3.jpg, hingga citra akhir 121.jpg.
3.4. Median Filter
Setelah video dipisahkan menjadi citra-citra yang berdiri sendiri, tahap selanjutnya
yang dilakukan adalah menghilangkan derau(noise) pada setiap citra. Proses ini dapat
dilakukan dengan metode median filter. Filtering menggunakan median filter dimulai
dengan melakukan pembacaan nilai piksel citra. Setelah piksel citra didapatkan, maka
akan dilakukan penambahan nilai piksel di sekeliling citra. Tahap selanjutnya adalah
mengatur ukuran matriks filter(mask) menjadi 3x3. Kemudian nilai piksel akan
diurutkan secara ascending pada setiap matriks filter(mask). Setelah proses
pengurutan nilai piksel dilakukan, maka nilai median pada setiap matriks filter(mask)
dapat dihitung. Nilai median hasil penghitungan ini yang akan digunakan untuk
menggantikan nilai piksel asli citra.
.
3.4.1. Membaca Nilai Piksel Citra
Pembacaan nilai piksel citra dilakukan pada class GetPixel. Proses pembacaan
diawali dengan mendapatkan ukuran tinggi citra menggunakan getHeight() dan
lebar citra menggunakan getWidth(). Kemudian, nilai RGB (Red,Green,Blue)
citra akan diperoleh menggunakan function getRGB() sesuai dengan ukuran tinggi
dan lebar citra. Nilai RGB ini akan dikonversi menjadi grayscale dengan operasi
bitwise pada function getRGBArray(). Setelah nilai piksel dalam bentuk grayscale
didapatkan, nilai ini akan dimasukkan ke dalam matriks citra dengan function
getMatrix().
Universitas Sumatera Utara
29
Output yang didapatkan pada proses pembacaan nilai piksel ini berupa array
matriks citra dengan ukuran tinggi × lebar
yang disimpan dalam variabel
matrixImage[][]. Pseudocode pembacaan nilai citra dapat dilihat pada Gambar
3.4.
Start
Input image file
get pixel image
for (every file)
get height and width image
for i