Operasi Ketetanggaan Piksel Pengantar pengolahan Citra digital Operasi Ketetanggaan Piksel Prodi S1 teknik informatika :: Sekolah tINGGi teknologi nurul jadid
Outline Pengertian operasi ketetanggaan piksel Pengertian ketetanggaan piksel Aplikasi ketetanggaan piksel Konvolusi Frekuensi Filter lolos-rendah Filter lolos-tinggi Filter high-boost Efek emboss
Ilustrasi
Definisi Sdalah operasi pengolahan citra untuk mendapatkan nilai suatu piksel yang melibatkan nilai piksel-piksel tetangganya. Setiap piksel pada umumnya tidak berdiri sendiri, melainkan terkait dengan piksel tetangga, karena merupakan bagian suatu objek tertentu di dalam citra. Sifat inilah yang kemudian mendasari timbulnya algoritma untuk mengolah setiap piksel citra melalui piksel-piksel tetangga.
Jenis Ketetanggaan Piksel π 1 = π, π+1 , π 2 = πβ1, π , π 3 = π, πβ1 , π 4 = π+1, π π 1 = π, π+1 , π 2 = πβ1, πβ1 , π 3 = π, πβ1 , π 4 = πβ1, πβ1 π 5 = π, πβ1 , π 6 = π+1, πβ1 , π 7 = π+1, πβ1 , π 8 = π+1, π+1
Aplikasi Ketetanggaan Piksel pada Filter Sebagai filter atau tapis, operasi ketetanggaan piksel berfungsi untuk menyaring atau paling tidak mengurangi gangguan atau penyimpangan pada citra Jenis ketetanggaan: filter batas filter pererataan filter median
Filter Batas (1) : Algoritma ALGORITMA 4.1 β Menghitung piksel dengan filter batas Masukan: f(y, x) : Piksel pada posisi (y, x) Keluaran: g(y, x) : Nilai intensitas untuk piksel pada citra g pada posisi (y, x) 1. Carilah nilai intensitas terkecil pada tetangga f(y, x) dengan menggunakan 8-ketetanggan dan simpan pada minInt. 2. Carilah nilai intensitas terbesar pada tetangga f(y, x) dengan menggunakan 8-ketetanggan dan simpan pada maksInt. 3. IF f(y, x) < minInt g(y, x) ο¬ minInt ELSE IF f(y. x) > maksInt g(y, x) ο¬ maksInt g(y, x) ο¬ f(y, x) END-IF
Filter Batas (2) : Ilustrasi ANALISIS : minInt = minimum(5, 7, 7, 5, 4, 6, 7, 8) = 4; maksInt = maksimum(5, 7, 7, 5, 4, 6, 7, 8) = 8; mengingat f(y, x) bernilai 9 dan lebih besar daripada 8 (maksInt) maka g(y, x) bernilai 8; seandainya f(y, x) pada keadaan di atas bernilai 2 (bukan 9), g(y,x) akan bernilai 4.
Filter Batas (3) : Implementasi Gambar Citra mobil dengan derau (kiri) dan setelah difilter (kanan) Citra boneka dengan derau (kiri) dan setelah difilter (kanan)
Filter Pererataan (1) : Overview Nilai didapatkan dengan rumus π π¦, π₯ = 1 9 π=β1 1 π=β1 1 π(π¦+π, π₯+π) Secara prinsip, hasil nilai pererataan diperoleh dari nilai rerata piksel dan tetangganya
Filter Pererataan (2) : Ilustrasi Nilai pada f(y, x) adalah 68 Nilai rerata pengganti untuk g(y, x) dihitung dengan cara seperti berikut: Β g(y, x) = 1/9 x (65+50+55+76+68+60+60+60+62) = 61,77 β ππ Jadi, nilai 68 pada f(y, x) diubah menjadi 62 pada g(y, x).
Filter Pererataan (3) : Implementasi Gambar
Filter Median (1) : Overview Nilai yang lebih baik digunakan untuk suatu piksel ditentukan oleh nilai median dari setiap piksel dan kedelapan piksel tetangga pada 8-ketetanggaan. Filter ini dapat dipakai untuk menghilangkan derau bintik-bintik.
Filter Median (2) : Ilustrasi Nilai pada f(y, x) adalah 10 Nilai median didapatkan dengan mengurutkan seluruh nilai, kemudian diambil nilai tengah Β 10 10 10 10 12 12 12 12 13 Jadi, nilai 10 pada f(y, x) diubah menjadi 12 pada g(y, x).
Filter Median (3) : Implementasi Gambar
Konvolusi (cadar/ cadar konvolusi, /cadar spasial) Proses untuk memperoleh suatu piksel didasarkan pada nilai piksel itu sendiri dan tetangganya, dengan melibatkan suatu matriks yang disebut kernel yang merepresentasikan pembobotan. Wujud kernel umumnya bujur sangkar, tetapi dapat pula berbentuk persegi panjang.
Proses Konvolusi Menumpangkan suatu jendela (kernel) yang berisi angka-angka pengali pada setiap piksel yang ditimpali. Kemudian, nilai rerata diambil dari hasil-hasil kali tersebut. Khusus bila angka-angka pengali tersebut semua adalah 1, hasil yang didapat sama saja dengan filter pererataan. Pada pelaksanaan konvolusi, kernel digeser sepanjang baris dan kolom dalam citra sehingga diperoleh nilai yang baru pada citra keluaran.
Ilustrasi Konvolusi
Contoh Konvolusi g(x, y) = -1 x 62 + 0 x 60 + 1 x 60 + citra Hasil Konvolusi g(x, y) = -1 x 62 + 0 x 60 + 1 x 60 + -2 x 60 + 0 x 68 + 2 x 78 + -1 x 55 + 0 x 50 + 1 x 65 = -62 + 0 + 60 β 120 + 0 + 152 β 55 + 0 + 65 = 40 kernel Nilai 68 pada citra akan diganti dengan 40
Fungsi Konvolusi & Implementasi function [G] = konvolusi(F, H) % KONVOLUSI Melakukan konvolusi kernel H dengan citra F % H harus mempunyai tinggi dan lebar ganjil % Hasil: citra G [tinggi_f, lebar_f] = size(F); [tinggi_h, lebar_h] = size(H); m2 = floor(tinggi_h/2); n2 = floor(lebar_h/2); F2=double(F); for y=m2+1 : tinggi_f-m2 for x=n2+1 : lebar_f-n2 % Pelaksanaan konvolusi F(baris, kolom) jum = 0; for p=-m2 : m2 for q=-n2 : n2 jum = jum + H(p+m2+1,q+n2+1) * ... F2(y-p, x-q); end G(y-m2, x-n2) = jum; >> KERNEL = [-1 0 -1; 0 4 0; -1 0 -1]; >> GAMBAR = imread('gedung.tif'); >> K1=konvolusi(GAMBAR,KERNEL); >> K2=uint8(K1);
Problem Konvolusi Abaikan piksel pada bagian tepi Buat baris tambahan pada bagian tepi (baris dan kolom baru diisi dengan nilai 0) Ambil bagian yang tidak punya pasangan dengan bagian lain dari citra
Mempercepat Komputasi Konvolusi Komputasi pada konvolusi dapat menjadi lama jika ukuran kernel membesar. Untuk kernel dengan ukuran n x n, proses konvolusi akan dilakukan n x n kali. Jika dinyatakan dengan ukuran Big O, prosesnya memerlukan O(n2). Memecah matrik kernel menjadi dua buah vektor π= π π π₯ π π h = kernel hk = vektor kolom hb = vektor baris
Memecah matriks kernel dalam vektor Cek matriks kernel dengan rank. Jika hasilnya 1 kalau matriks dapat didekomposisi menjadi dua buah vektor. Dekomposisi matriks kernel dengan fungsi svd CONTOH >> H = [-1 0 1; -2 0 2; -1 0 1]; >> rank(H); ο¨ ans = 1 {bisa jadi matriks} >> [U,S,V]=svd(H); >> hkol = U(:,1) * sqrt(S(1)); {menghasilkan vektor kolom}; >> hbrs = conj(V(:,1)) * sqrt(S(1)); {menghasilkan vektor baris} >> H1=hkol*hbrs;
Implementasi Konvolusi Vektor function [G] = konvolusi3(F, Hkol, Hbrs) [tinggi_f, lebar_f] = size(F); [tinggi_h, lebar_h] = size(Hbrs); m2 = floor(lebar_h/2); F2=double(F); T = F2; for y=m2+1 : tinggi_f-m2 for x=1 : lebar_f jum = 0; for p=-m2 : m2 jum = jum + Hkol(p+m2+1) * F2(y-p, x); end T(y, x) = jum; for y=1 : tinggi_f for x=m2+1 : lebar_f-m2 jum = jum + Hbrs(p+m2+1) * T(y, x-p); G(y, x) = jum; >> GAMBAR=imread(βgedung.tifβ) >> Hkol = [-1 -2 -1]; >> Hbrs = [1 0 -1]; >> K=konvolusi3(GAMBAR, Hkol, Hbrs); >> K2=uint8(K); >> imshow(K2);
Frekuensi Spasial Frekuensi spasial pada citra menunjukkan seberapa sering suatu perubahan aras keabuan terjadi dari suatu posisi ke posisi berikutnya Ilustrasi di samping (a) perubahan aras keabuan terjadi sekali saja (b) terlihat bahwa perubahan aras keabuan sering terjadi
Filter Lolos-Rendah Filter lolos-bawah (low-pass filter) adalah filter yang mempunyai sifat dapat meloloskan yang berfrekuensi rendah dan menghilangkan yang berfrekuensi tinggi. Efek filter ini membuat perubahan aras keabuan menjadi lebih lembut. Filter ini berguna untuk menghaluskan derau atau untuk kepentingan interpolasi tepi objek dalam citra. Tidak menggunakan konvolusi (menggunakan filter median) Menggunakan Konvolusi dengan kernel tertentu
Perbandingan hasil penapisan
Kernel konvolusi Filter Lolos-Rendah function [G] = tapis(berkas, H) % TAPIS Menerapkan filter H dengan citra F % H harus mempunyai tinggi dan lebar ganjil % Hasil: citra G F = imread(berkas); K = konvolusi(F, H); G = uint8(K); figure(1); imshow(F); figure(2); imshow(G); Filter lolos rendah dengan Kernel #2 >> H = [1 1 1; 1 1 1; 1 1 1] / 9; >> tapis('mobil.tif', H);
Contoh Hasil Penapisan Kernel
Filter Lolos Tinggi Filter lolos-tinggi adalah filter yang ditujukan untuk melewatkan frekuensi tinggi dan menghalangi yang berfrekuensi rendah. Hal ini biasa dipakai untuk mendapatkan tepi objek dalam citra atau menajamkan citra.
Kernel Filter Lolos Tinggi Filter lolos-tinggi mempunyai sifat yaitu jumlah seluruh koefisien adalah nol. Apabila dikenakan pada area dengan perubahan aras keabuan yang lambat (frekuensi rendah), hasil berupa nol atau nilai yang sangat kecil. Apabila dikenakan pada area yang perubahan aras keabuannya cepat (frekuensi tinggi), hasil konvolusi bernilai sangat besar.
Perbandingan hasil penapisan Hasil gambar (a) hanya pada perbatasan antara perubahan aras keabuan yang ditonjolkan (baris berisi 88) dan nilai yang lain bernilai rendah (nol). Dengan demikian, akan muncul garis putih. Hasil Gambar (b) menunjukkan bahwa citra yang berfrekuensi tinggi hampir tidak mengalami perubahan, kecuali nilainya saja yang berefek pada penajaman perbedaan aras keabuan (nilai 150 menjadi 176 dan nilai 40 menjadi 0)
Contoh hasil penapisan kernel
Filter High-Boost Dapat digunakan untuk menajamkan citra melalui konvolusi. Kernel yang dapat dipakai adalah kernel filter lolos-tinggi dengan nilai di pusat diisi dengan nilai yang lebih besar daripada nilai pada posisi tersebut untuk filter lolos-tinggi.
Contoh hasil penapisan kernel
Efek Emboss Efek ini akan penebalan garis ke arah tertentu Nilai dan arah penebalan tergantung pada nilai kernel yang digunakan dalam penapisan gambar Nilai negatif dan positif yang berpasangan menentukan perubahan kecerahan yang berefek pada penggambaran garis gelap atau terang
Beberapa contoh kernel & hasil penapisan
Tugas Lakukan praktikum untuk menguji semua teori dalam materi pertemuan ini Rekam proses praktikum menggunakan desktop capturing! Upload ke youtube menggunakan email masing- masing!
Operasi Geometrik >> Selanjutnya...