Makalah ini membahas pengolahan citra digital menggunakan Octave dengan melakukan beberapa operasi seperti operasi piksel, operasi tetangga piksel, dan operasi geometrik untuk memanipulasi citra."
Cara Membuat Program Chatting Sederhana Dengan Visual Basic (Program 3)Donny Kurniawan
Β
Laporan lengkap tentang cara membuat program chatting sederhana dengan Visual Basic. Ini adalah program chatting saya yang ke 3, dari 4 program yang saya buat. Silahkan kunjungi profil saya dan lihat satu-persatu tentang keempat program tersebut.
Cara Membuat Program Chatting Sederhana Dengan Visual Basic (Program 1 dan 2)Donny Kurniawan
Β
Laporan lengkap tentang cara membuat program chatting sederhana dengan Visual Basic. Ini adalah program chatting saya yang ke 1 dan 2, dari 4 program yang saya buat. Silahkan kunjungi profil saya dan lihat satu-persatu tentang keempat program tersebut.
Laporan akhir MODUL 5 PROFILE PROJECTOR METROLOGI INDUSTRI UNRI DIAN HARYANTO 1407123394 KALAU DOWNLOAD ADA YANG SALAH TOLONG BERI TAHU SAYA SMS 082281199396
Cara Membuat Program Chatting Sederhana Dengan Visual Basic (Program 4)Donny Kurniawan
Β
Laporan lengkap tentang cara membuat program chatting sederhana dengan Visual Basic. Ini adalah program chatting saya yang ke 4, dari 4 program yang saya buat. Silahkan kunjungi profil saya dan lihat satu-persatu tentang keempat program tersebut.
BANTING HARGA, 0878.8138.9755 Rumput Sintetis.Melayani Kendari
Ukuran rumput sintetis β Rumput sintetis menjadi pilihan yang tepat bagi yang ingin membuat lapangan, taman, maupun hiasan rumput tanpa kerepotan untuk mengurusnya. Jika dilihat, rumput sintetis ini tidak jauh berbeda dengan rumput asli bahkan warnanya lebih beragam. Berikut sekilas tentang rumput sintetis di lihat dari keunggulan, fungsi, serta ukurannya.
Info
http://wa.me/6287881389755
Rumput Sintetis KLIK https://wa.me/6287881389755, Apakah Rumput Sintetis Boleh Kena Hujan Kedungwaringin Bekasi, Rumput Sintetis Aquascape Muara gembong Bekasi, Apakah Rumput Sintetis Menyerap Air Setu Bekasi, Alas Untuk Rumput Sintetis Cabangbungin Bekasi, Rumput Sintetis Cibarusah Bekasi
Rumput sintetis adalah permukaan yang terbuat dari serat sintetis yang tampak menyerupai rumput alami,
Perawatan Lebih Mudah
Dibandingkan merawat rumput asli di halaman rumah, merawat rumput sintetis relatif lebih mudah.
Kamu tidak membutuhkan air dalam jumlah banyak untuk merawat rumput ini.
Jika rumput kotor, kamu cukup menggunakan vacuum cleaner bertekanan rendah untuk menyedot kotoran di rumput.
Kamu juga tidak perlu memotong rumput rutin karena rumput tidak akan bertumbuh
Pemesanan
Hubungi
Endang
Wa : 0878-8138-9755
KLIK!!! :https://sites.google.com/view/bagus-decoration/slap
#jualrumputsintetiscikarangselatanbekasi, #karpetrumputsintetissukatanibekasi, #hargarumputsintetisperrollserangbarubekasi, #alasrumputsintetispembayuranbekasi, #rumputsintetisamankahcibitungbekasi, #rumputsintetisamankenahujanbabelanbekasi, #apakahrumputsintetistahanaircikarangtimurbekasi, #tarumajayabekasi, #bojongmangubekasi, #karangbahagiabekasi
Cara Membersihkan Rumput Sintetis, Boleh
Desain Taman Dengan Rumput Sintetis NEW BERND, (0878-8138-9755) Melayani Kalideres Jakarta Barat
Desain Taman Dengan Rumput Sintetis KLIK https://wa.me/6287881389755, Rumput Sintetis Golf Setu Bekasi, Harga Rumput Sintetis Futsal Per Roll Cikarang Pusat Bekasi, Dekorasi Rumput Sintetis Babelan Bekasi, Distributor Rumput Sintetis Surabaya Kedungwaringin Bekasi, Rumput Sintetis Untuk Futsal Cikarang Utara Bekasi
Rumput sintetis adalah permukaan yang terbuat dari serat sintetis yang tampak menyerupai rumput alami,
Perawatan Lebih Mudah
Dibandingkan merawat rumput asli di halaman rumah, merawat rumput sintetis relatif lebih mudah.
Kamu tidak membutuhkan air dalam jumlah banyak untuk merawat rumput ini.
Jika rumput kotor, kamu cukup menggunakan vacuum cleaner bertekanan rendah untuk menyedot kotoran di rumput.
Kamu juga tidak perlu memotong rumput rutin karena rumput tidak akan bertumbuh
Pemesanan
Hubungi
Endang
Wa : 0878-8138-9755
KLIK!!! :https://sites.google.com/view/bagus-decoration/slap
#fungsidrainaserumputsintetiscabangbunginbekasi, #futsallapanganrumputsintetiscikarangtimurbekasi, #efekrumputsintetiskarangbahagiabekasi, #rumputsintetislapanganfutsaltambelangbekasi, #pasangrumputsintetisfutsalsukawangibekasi, #fotorumputsintetistarumajayabekasi, #futsalindoorrumputsintetiscikarangselatanbekasi, #pembayuranbekasi, #sukatanibekasi, #tambunutarabekasi
Rumput Sintetis Futsal, Futsal Outdoor Rumput Sintetis, Efek Rumput Sintetis, Rumput Sintetis Green Grass, Harga Rumput Sintetis Futsal Per Roll, Fungsi Rumput Sintetis, Rumput Sintetis Golf, Dasar Rumput Sintetis
Desain Taman Dengan Rumput Sintetis NEW BERND, (0878-8138-9755) Melayani Kalideres Jakarta Barat
Desain Taman Dengan Rumput Sintetis KLIK https://wa.me/6287881389755, Rumput Sintetis Golf Setu Bekasi, Harga Rumput Sintetis Futsal Per Roll Cikarang Pusat Bekasi, Dekorasi Rumput Sintetis Babelan Bekasi, Distributor Rumput Sintetis Surabaya Kedungwaringin Bekasi, Rumput Sintetis Untuk Futsal Cikarang Utara Bekasi
Rumput sintetis adalah permukaan yang terbuat dari serat sintetis yang tampak menyerupai rumput alami,
Perawatan Lebih Mudah
Dibandingkan merawat rumput asli di halaman rumah, merawat rumput sintetis relatif lebih mudah.
Kamu tidak membutuhkan air dalam jumlah banyak untuk merawat rumput ini.
Jika rumput kotor, kamu cukup menggunakan vacuum cleaner bertekanan rendah untuk menyedot kotoran di rumput.
Kamu juga tidak perlu memotong rumput rutin karena rumput tidak akan bertumbuh
Pemesanan
Hubungi
Endang
Wa : 0878-8138-9755
KLIK!!! :https://sites.google.com/view/bagus-decoration/slap
#fungsidrainaserumputsintetiscabangbunginbekasi, #futsallapanganrumputsintetiscikarangtimurbekasi, #efekrumputsintetiskarangbahagiabekasi, #rumputsintetislapanganfutsaltambelangbekasi, #pasangrumputsintetisfutsalsukawangibekasi, #fotorumputsintetistarumajayabekasi, #futsalindoorrumputsintetiscikarangselatanbekasi, #pembayuranbekasi, #sukatanibekasi, #tambunutarabekasi
Rumput Sintetis Futsal, Futsal Outdoor Rumput Sintetis, Efek Rumput Sintetis, Rumput Sintetis Green Grass, Harga Rumput Sintetis Futsal Per Roll, Fungsi Rumput Sintetis, Rumput Sintetis Golf, Dasar Rumput Sintetis
ppt profesionalisasi pendidikan Pai 9.pdfNur afiyah
Β
Pembelajaran landasan pendidikan yang membahas tentang profesionalisasi pendidikan. Semoga dengan adanya materi ini dapat memudahkan kita untuk memahami dengan baik serta menambah pengetahuan kita tentang profesionalisasi pendidikan.
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik DosenAdrianAgoes9
Β
sosialisasi untuk dosen dalam mengisi dan memadankan sister akunnya, sehingga bisa memutakhirkan data di dalam sister tersebut. ini adalah untuk kepentingan jabatan akademik dan jabatan fungsional dosen. penting untuk karir dan jabatan dosen juga untuk kepentingan akademik perguruan tinggi terkait.
1. TUGAS MANDIRI
PENGOLAHAN CITRA DIGITAL MENGGUNAKAN OCTAVE
MATA KULIAH : PEMROGRAMAN CITRA DIGITAL
NAMA : FAUJI GABE.H . PANGANRIBUAN
NPM : 130210206
DOSEN : COSMOS EKO SUHARYANTO. M. Kom.
UNIVERSITAS PUTERA BATAM
2015
2. i
KATA PENGANTAR
Syukur Alhamdulillah kehadirat Tuhan YME, yang telah melimpahkan segala
rahmat dan karuniaNya, sehingga penulis dapat menyelesaikan makalah yang
merupakan salah satu Tugas Mandiri mata kuliah Pengolahan Citra Digital di
Universitas Putera Batam.
Makalah ini disusun dengan judul Pengolahan Citra Digital Menggunakan
OCTAVE. Didalam makalah ini terdapat penjelasan mengenai mengolah objek citra
dengan menggunakan algoritma dan pemrograman.
Penulis sangat menyadari bahwa makalah ini masih jauh dari sempurna.
Karena itu, kritik dan saran yang bersifat konstruktif serta membangun akan
senantiasa penulis terima dengan senang hati. Dengan segala keterbatasan, penulis
menyadari pula bahwa makalah ini tak akan terwujud tanpa bantuan, bimbingan dan
dorongan dari berbagai pihak yang bersedia membantu dalam pembuatan makalah
ini.
Batam, Juni 2015
Penulis
3. ii
DAFTAR ISI
Kata Pengantar............................................................................................... i
Daftar Isi ......................................................................................................... ii
Bab I Pendahuluan.......................................................................................... 1
1.1 Latar Belakang.................................................................................... 1
1.2 Tujuan Makalah.................................................................................. 1
1.3 Metode Studi....................................................................................... 2
1.4 Waktu Studi........................................................................................ 2
Bab II TinjauanPustaka ................................................................................. 3
2.1 Pengertian Pengolahan Citra Digital................................................... 3
2.2 Prinsip Dasar Pengolahan Citra........................................................... 3
2.3 Representasi Citra................................................................................ 5
2.4 Kuantisasi Citra ................................................................................... 6
2.5 Kualitas Citra....................................................................................... 7
2.6 Membaca Citra..................................................................................... 7
2.7 Mengetahui Ukuran Citra .................................................................... 7
2.8 Menampilkan Citra.............................................................................. 8
2.9 Mengenal Jenis Citra ........................................................................... 8
Bab III Pembahasan....................................................................................... 11
3.1 Operasi Piksel dan Histogram............................................................. 11
3.1.1 Operasi Piksel............................................................................ 11
3.1.2 Menggunakan Histogram Citra ................................................. 11
3.1.3 Meningkatkan Kecerahan.......................................................... 13
3.1.4 Meregangkan Kontras ............................................................... 14
3.1.5 Membalik Citra.......................................................................... 15
3.1.6 Pemotongan Aras Keabuan....................................................... 16
5. iv
BAB I
PENDAHULUAN
1.1 LatarBelakangMasalah
Perkembangan teknologi pada masa sekarang telah memasuki era digital.
Proses digitalisasi teknologi juga telah mengubah suatu citra berkembang dan lebih
menarik buat semua orang dalam menggunakan nya. Teknologi semakin menarik
karena adanya multimedia yang membuat sebuah teknologi yang dulunya disajikan
hanya berupa sebuah teks, namun sekarang sudah berupa gambar,musik,videodan lain
lain.
Pengolahan yang berupa teks sekarang hampir telah beralih berupa image atau
citra. Mulai dari lahir sampai akhir hayat citra selalu mengabadikan setiap kegiatan
dan moment yang berharga bagi seseorang. Untuk itu diperlukan suatu pengolahan
agar citra yang dihasilkan bisa dimanipulasi sesuai keinginan. Pengolahan citra tidak
hanya dalam dunia fotografi, tetapi juga telah memasuki berbagai aspek seperti :
kedokteran, biologi, fisika dan lain sebagainya. Sebagai seorang jurusan informatika
kita, harus mengetahui bagaimana sebuah citra diolah dengan menggunakan
algoritma dan penulisan program.Jadi sederhananya, citra yang diolah mnggunakan
kode program dengan ketentuan yang ada.
1.2 Tujuan Makalah
Tujuan dari makalah ini, bertujuan untuk memenuhi tugas matakuliah
pengolahan citra,juga untuk menambah pengetahuan bagi penulis pada matakuliah
Pengolahan Citra,dan semoga bisa bermanfaat bagi pembacasekalian.
6. v
1.3 Metodepenulisan
Metode yang penulis gunakan adalah tinjauan pustaka. Dalam metode ini
penulis bersumber dari buku dan internet untuk menyelesaikan makalah ini
1.4 Waktu Studi
Studi dilakukan pada bulan akhir Februari2015 sampai dengan akhirJuly 2015
7. 6
BAB II
TINJAUAN PUSTAKA
2.1 Pengertian Pengolahan Citra Digital
Secara umum, istilah pengolahan citra digital menyatakan βpemrosesan
gambar berdimensi-dua melalui komputer digitalβ (Jain, 1989). Menurut Efford
(2000), pengolahan citra adalah istilah umum untuk berbagai teknik yang
keberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara.
Foto adalah contoh gambar berdimensi dua yang bisa diolah dengan mudah. Setiap
foto dalam bentuk citra digital (misalnya berasal dari kamera digital) dapat diolah
melalui perangkat-lunak tertentu.
2.2 Prinsip Dasar dalam Pengolahan Citra
Aplikasi-aplikasi pada umumnya menggunakan prinsip dasar dalam
pengolahan citra seperti peningkatan kecerahan dan kontras, penghilangan derau pada
citra, dan pencarian bentuk objek
1. PeningkatanKecerahandanKontras
Dengan menggunakan pengolahan citra, citra yang kurang cerah dan kurang
kontras menjadi bisa diolah menjadi citra yang lebih kontras.
8. 7
Gambar 2.1Pengolahan citra memungkinkan pengubahan kontras pada citra
2. PenghilanganDerau
Penghilangan deraukan menghasilkan citra dengan kualitas yang bagus
sehingga noise yang ada dapat dihilangkan.
Gambar 2.2 Pengolahan citra memungkinkan untuk menghilangkan derau pada
citra
(a) Citra dengan derau berbentuk kotak-kotak (b) Citra dengan derau telah dihilangkan
9. 8
3. PencarianBentukObjek
Untukkepentinganmengenalisuatuobjek di dalamcitra,
objekperludipisahkanterlebihduludarilatarbelakangnya. Salah satupendekatan yang
umumdipakaiuntukkeperluaniniadalahpenemuanbatasobjek.
Gambar 2.3Pengolahan citra memungkinkan untuk mendapatkan bentuk objek
2.3 Representasi Citra Digital
Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel atau
βpicture elementβ). Setiap piksel digambarkan sebagai satu kotak kecil. Setiap piksel
mempunyai koordinat posisi. Sistem koordinat yang dipakai untuk menyatakan citra
digital ditunjukkan pada Gambar dibawah ini
10. 9
Gambar 2.4Sistem koordinat citra berukuran M x N
Dengan sistem koordinat yang mengikuti asas pemindaian pada layar TV standar
itu, sebuah piksel mempunyai koordinat berupa
(x, y)
Dalam hal ini,
ο· x menyatakan posisi kolom;
ο· y menyatakan posisi baris;
ο· piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok kanan-
bawah mempunyai koordinat (N-1, M-1).
2.4 Kuantisasi Citra
Kuantisasi adalah prosedur yang dipakai untuk membuat suatu isyarat yang
bersifat kontinue ke dalam bentuk diskret.
11. 10
Tabel 2.1Jangkauan nilai pada citra keabuan
Komponen
warna
Bit per
Piksel
Jangkauan Penggunaan
1 1 0-1 Citra biner: dokumen
faksimili
8 0-255 Umum: foto dan hasil
pemindai
12 0-4095 Kualitas tinggi: foto dan
hasil pemindai
14 0-16383 Kualitas profesional: foto
dan hasil pemindai
16 0-65535 Kualitas tertinggi: citra
kedokteran dan astronomi
Tabel 2.2Jangkauan nilai pada citra berwarna
Komponen
Warna
Bit per
Piksel
Jangkauan Penggunaan
3 24 0-1 RGB umum
36 0-4095 RGB kualitas tinggi
42 0-16383 RGB kualitas profesional
4 32 0-255 CMYK (cetakan digital)
Gambar 2.5Kuantisasi citra dengan menggunakan berbagai bit
2.5 Kualitas Citra
Jumlah piksel yang digunakan untuk menyusun suatu citra mempengaruhi
kualitas citra. Istilah resolusi citra biasa dinyatakan jumlah piksel pada arah lebar dan
tinggi. Resolusi piksel biasa dinyatakan dengan notasi m x n, dengan m menyatakan
tinggi dan n menyatakan lebar dalam jumlah piksel.
12. 11
2.6 Membaca Citra
Octave menyediakan perintah yang berguna untuk membaca citra yang tersimpan
dalam bentuk file.Perintah itu bernama imread. Bentuk pemanggilannya:
Img = imread(nama_file_citra). Format file gambar yang bisa dibaca oleh imread
adalah TIFF, PNG, JPG, GIF.
>> Img = imread(βC:Imagemandrill.pngβ);ο
>>
2.7 MengetahuiUkuran Citra
Secara umum, ukuran matriks Img adalah M x N. Untuk mengetahui nilai M dan
N yang sesungguhnya, dapat digunakan fungsi pada Octave yang bernama size.
Contoh untuk mengetahui dimensi pada matriks Img:
>> Ukuran = size(Img)ο
Ukuran =
512 512
2.8 Menampilkan Citra
Citra dapat ditampilkan dengan mudah melalui fungsi imshow. Contoh berikut
digunakan untuk menampilkan citra yang terdapat di Img:
>> imshow(Img);ο
2.9 MengenalJenis Citra
Ada tiga jenis citra yang umum digunakan dalam pemrosesan citra. Ketiga jenis
citra tersebut yaitu citra berwarna, citra berskala keabuan, dan citra biner.
13. 12
1. Citra Berwarna
Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis citra yang
menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B (biru). Setiap
komponen warna menggunakan 8 bit (nilainya berkisar antara 0 sampai dengan 255).
Dengan demikian, kemungkinan warna yang bisa disajikan mencapai 255 x 255 x
255 atau 16.581.375 warna. Tabel 2.4 menunjukkan contoh warna dan nilai R,G,
dan B.
Tabel 2.4 Warna dan nilai penyusun warna
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
Gambar 2.6Citra berwarna
2. Citra Berskala Keabuan
Sesuai dengan nama yang melekat, citra jenis ini menangani gradasi warna hitam
dan putih, yang tentu saja menghasilkan efek warna abu-abu. Pada jenis gambar ini,
warna dinyatakan dengan intensitas. Dalam hal ini, intensitas berkisar antara 0 sampai
dengan 255. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih. Contoh citra
berskala keabuan telah dibahas pada Subbab 2.5.
14. 13
3. Citra Biner
Citra biner adalah citra dengan setiap piksel hanya dinyatakan dengan sebuah
nilai dari dua buah kemungkinan (yaitu nilai 0 dan 1). Nilai 0 menyatakan warna
hitam dan nilai 1 menyatakan warna putih. Citra jenis ini banyak dipakai dalam
pemrosesan citra, misalnya untuk kepentingan memperoleh tepi bentuk suatu objek.
(a) Citra daun berskala keabuan (b) Citra biner
Gambar 2.7Citra di kanan menyatakan bentuk citra di kiri
dengan mengabaikan komposisi warna
15. 14
BAB III
PEMBAHASAN
3.1 Operasi Piksel dan Histogram
3.1.1. Operasi piksel
Operasi pikseladalahoperasipengolahancitra yang memetakanhubungansetiappiksel
yang bergantungpadapikselitusendiri. Jika f(y, x)
menyatakannilaisebuahpikselpadacitra f dan g(y, x)
menyatakanpikselhasilpengolahandari f(y, x), hubungannyadapatdinyatakandengan ;
π( π¦, π₯) = π(π( π¦, π₯))
3.1.2. Menggunakan Histogram Citra
Histogram citra merupakan diagram yang menggambarkan frekuensi setiap nilai
intensitas yang muncul di seluruh piksel citra. Nilai yang besar menyatakan bahwa
piksel-piksel yang mempunyai intensitas tersebut sangat banyak.
Algoritma Menghitung histogram citra aras keabuan
Masukan:
β’ f(M, N) : citra berukuran M baris dan N kolom
β’ L : jumlah aras keabuan
1. Buatlah larik hist sebanyak 2L elemen dan isi dengan nol.
2.
END-FOR
END-FOR
16. 15
Program Histogram
==> function histo(Img)
> % HISTO Digunakan sebagai contoh pembuatan histogram
>
> [jum_baris, jum_kolom] = size(Img);
> Img = double(Img);
>
> Histog = zeros(256, 1);
> for baris=1 : jum_baris
> for kolom=1 : jum_kolom
> Histog(Img(baris, kolom)+1) = ...
> Histog(Img(baris, kolom)+1) + 1;
> end
> end
>
> % Tampilkan dalam bentuk diagram batang
> Horis = (0:255)';
> bar(Horis, Histog);
> endfunction
==> Img = imread('C:Imagewelcome.png');
warning: your version of GraphicsMagick limits images to 16 bits per pixel
==> histo(Img);
17. 16
Gambar 3.1Citra welcome.png dan histogramnya
3.1.3. Meningkatkan Kecerahan
Operasidasar yang seringdilakukanpadacitraadalahpeningkatankecerahan
(brightness).Operasiinidiperlukandengantujuanuntukmembuatgambarmenjadilebihter
ang.
Secaramatematis,
peningkatankecerahandilakukandengancaramenambahkansuatukonstantaterhadapnilai
seluruhpiksel. Misalkan, f(y, x)
menyatakannilaipikselpadacitraberskalakeabuanpadakoordinat(y, x). Maka, citrabaru
π( π¦, π₯) = π( π¦, π₯) + π½
Telahmeningkatnilaikecerahansemuapikselnyasebesarπ½ terhadap citra asli f(y, x).
Apabila Ξ² berupabilangan negatif, kecerahanakanmenurunataumenjadilebihgelap
Program Peningkatan Kecerahan
18. 17
andree==> barelang = imread('C:Imagemendung.png');
andree==> C = barelang + 80;
andree==> figure(1);
andree==> subplot(1,2,1);imshow(barelang);
andree==> subplot(1,2,2);imshow(C);
(1) Gambar asli (2) gambar hasil peningkatan kecerahan
Gambar 3.2 Citra barelang.png dengan peningkatan kecerahan
3.1.4. Meregangkan Kontras
Kontras dalam suatu citra menyatakan distribusi warna terang dan warna
gelap. Suatu citra berskala keabuan dikatakan memiliki kontras rendah apabila
distribusi warna cenderung pada jangkauan aras keabuan yang sempit. Sebaliknya,
citra mempunyai kontras tinggi, apabila jangkauan aras keabuan lebih terdistribusi
secara melebar. Kontras dapat diukur berdasarkan perbedaan antara nilai intensitas
tertinggi dan nilai intensitas terendah yang menyusun piksel-piksel dalam citra.
Program Kontras
19. 18
octave:1> Img = imread('C:Imagemawar.png');
warning: your version of GraphicsMagick limits images to 16 bits per pixel
octave:2> K = 2.5 * Img;
octave:3> figure(1);
octave:4> subplot(1,2,1);imshow(Img);
octave:5> subplot(1,2,2);imshow(K);
octave:6>
(a) Gambar asli (b) citra hasil peningkatan kontas
Gambar 3.3 Citra mawar.pngdengan peningkatan kontras
3.1.5. Membalik Citra
Membuat citra terlihat negatif dengan rumus
π( π, π) = πππ β π( π, π)
Program Membalik Citra
20. 19
==> anisa = imread('C:Imageanisa.png');
warning: your version of GraphicsMagick limits images to 16 bits per pixel
==> R = 255 - anisa;
==> figure(2);
==> subplot(1,2,1);imshow(anisa);
==> subplot(1,2,2);imshow(R);
(a) Gambar asli (b) Citra hasil pembalikan
Gambar 3.4Citra anisa dan pembalikannya
3.1.6. Pemotongan Aras Keabuan
Efek pemotongan (clipping) diperoleh bila dilakukan operasi seperti berikut:
π( π¦, π₯) = {
0, π₯ β€ π1
π(π¦, π₯), π1 < π( π¦, π₯) < π2
255, π₯ β₯ π2
21. 20
Nilai g dinolkan atau dipotong habis untuk intensitas asli dari 0 hingga f1
karena dipandang tidak mengandung informasi atau objek menarik. Demikian pula
untuk nilai intensitas dari f2 ke atas, yang mungkin hanya mengadung derau.
(a) Gambar asli (b) Hasil citra
Gambar 3.4 Citra pemotongan aras keabuan
3.2 Operasi Ketetanggan Piksel
3.2.1. Pengertian Tetangga Piksel
Operasiketetanggaanpikseladalahoperasipengolahancitrauntukmendapatkannila
isuatupiksel yang melibatkannilaipiksel-pikseltetangganya.
T2
T8
T2T4
T4
T3 T1P
T3
T7
T5 T1P
T6
(a) 4-ketetanggaan (b) 8-ketetanggaan
Gambar 3.5 Dua macam ketetanggaan piksel
ο· Pada 4-ketetanggaan
22. 21
π1 = ( π, π + 1), π2 = ( π β 1, π), π3 = ( π, π β 1), π4 = ( π + 1, π)
ο· Pada 8-ketetanggaan
π1 = ( π, π + 1), π2 = ( π β 1, π β 1),
π3 = ( π, π β 1), π4 = ( π β 1, π β 1)
π5 = ( π, π β 1), π6 = ( π + 1, π β 1),
π7 = ( π + 1, π β 1), π8 = ( π + 1, π + 1)
3.2.2. Aplikasi Tetangga Piksel
3.2.2.1. Filter Batas
Filter batas adalah filter yang dikemukakan dalam Davies (1990). Idenya adalah
mencegah piksel yang intensitasnya di luar intensitas piksel-piksel tetangga. Algoritma
yang digunakan untuk keperluan ini dapat dilihat berikut ini.
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
23. 22
ELSE
IF f(y. x) > maksInt
g(y, x) ο¬ maksInt
ELSE
g(y, x) ο¬ f(y, x)
END-IF
END-IF
Program Filter Batas
==> % FILBATAS Melakukan operasi ketetanggan piksel
==> % menggunakan filter batas
==>
==> F = imread('c:Imagenoise.png');
warning: your version of GraphicsMagick limits images to 16 bits per
pixel
==> Ukuran = size(F);
==> tinggi = Ukuran(1);
==> lebar = Ukuran(2);
==>
==> G = F;
==> for baris=2 : tinggi-1
> for kolom=2 : lebar-1
> minPiksel = min([F(baris-1, kolom-1) ...
> F(baris-1, kolom) F(baris, kolom+1) ...
> F(baris, kolom-1) ...
> F(baris, kolom+1) F(baris+1, kolom-1) ...
> F(baris+1, kolom) F(baris+1, kolom+1)]);
25. 24
(a) gambar asli (b) setelh penghilangan noise
Gambar 3.6Citra noise dan hasilnya
3.2.2.2. Filter Perataan
Filter pererataan (Costa dan Cesar, 2001) dilakukan dengan menggunakan rumus:
π( π¦, π₯) =
1
9
β β π(π¦ + π, π₯ + π)
1
π=β1
1
π=β1
(a) Gambar Asli (b) Setelah diolah
Gambar 3.7Citra perataan
3.2.2.3Filter Median
Filter ini dapat dipakai untuk menghilangkan derau bintik-bintik. Nilai yang lebih baik
digunakan untuk suatu piksel ditentukan oleh nilai median dari setiap piksel dan kedelapan
piksel tetangga pada 8-ketetanggaan. Secara matematis, filter dapat dinotasikan seperti
berikut:
π( π¦, π₯) = ππππππ(
26. 25
π( π¦ β 1, π₯ β 1), π( π¦ β 1, π₯), π( π¦ β 1, π₯ + 1),
π( π¦, π₯ β 1), π( π¦, π₯), π( π¦, π₯ + 1),
π( π¦ + 1, π₯ β 1), π( π¦ + 1, π₯), π( π¦ + 1, π₯ + 1))
Program Filter Median
% FILMEDIAN Melakukan operasi dengan filter median
F = imread('C:Imagemobil.TIF');
[tinggi, lebar] = size(F);
for baris=2 : tinggi-1
for kolom=2 : lebar-1
data = [F(baris-1, kolom-1) ...
F(baris-1, kolom) ...
F(baris-1, kolom+1) ...
F(baris, kolom-1) ...
F(baris, kolom) ...
F(baris, kolom+1) ...
F(baris+1, kolom-1) ...
F(baris+1, kolom) ...
F(baris+1, kolom+1)];
% Urutkan
for i=1 : 8
for j=i+1 : 9
if data(i) > data(j)
tmp = data(i);
data(i) = data(j);
data(j) = tmp;
end
end
27. 26
end
% Ambil nilai median
G(baris, kolom) = data(5);
end
end
figure(1); imshow(G);
clear;
(a) Gambar asli (b) gambar setelahdiolah
Gambar 3.8Citra median
3.2.3. Konvolusi
Konvolusi pada citra sering disebut sebagaikonvolusi dua-dimensi
(konvolusi 2D). Konvolusi 2D didefinisikan sebagai proses untuk memperoleh suatu
piksel didasarkan pada nilai piksel itu sendiri dan tetangganya, dengan melibatkan
suatu matriks yang disebut kernel yang merepresentasikan pembobotan.
ALGORITMA 4.2 β Konvolusi pada citra dengan mengabaikan bagian tepi
28. 27
Masukan:
ο· f : Citra yang akan dikonvolusi
ο· h : kernel konvolusi
Keluaran:
ο· g : Citra hasil konvolusi
1. m2 ο¬ floor(jumlah_baris_kernel h)
2. n2 ο¬ floor(jumlah_lebar_kernel h)
3. FOR y ο¬ m2+1 TO tinggi_citra_f β m2
FOR x ο¬n2+1 TO lebar_citra_f β n2
// Lakukan konvolusi
jum ο¬ 0;
FOR p ο¬ -m2 TO m2
FOR q ο¬ -n2 TO n2
jum ο¬ jum * h(p+m2+1, q+n2+1) * f(y-p, x-p)
END-FOR
END-FOR
g2(y, x) ο¬ jum
END-FOR
END-FOR
4. // Salin posisi g2 ke g dengan membuang yang tidak dikonvolusi
5. FOR y ο¬ m2+1 TO tinggi_citra_f β m2
FOR x ο¬ n2+1 TO lebar_citra_f β n2
g(y-m2, x-n2) ο¬ g2(y, x)
END-FOR
END-FOR
29. 28
(a)Gambar asli (b) setelah konvolusi
Gambar 3.9 Citra hasil konvolusi
3.2.4. Frekuensi
Definisi di Wikipedia menyatakan bahwa frekuensi spasial adalah
karakteristik sebarang struktur yang bersifat periodis sepanjang posisi dalam ruang.
Frekuensi spasial adalah ukuran seberapa sering struktur muncul berulang dalam satu
satuan jarak.
Frekuensi spasial pada citra menunjukkan seberapa sering suatu perubahan aras
keabuan terjadi dari suatu posisi ke posisi berikutnya
3.2.5. 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.
3.2.6. Filter high boost
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
3.2.7. Efek emboss
Rahasia pembuatan emboss terletak pada kernel konvolusi dengan sifat
seperti berikut (Oliver, dkk., 1993).
1. Tinggi dan lebar kernel gasal.
30. 29
2. Bobot dalam kernel bersifat tidak simetris terhadap piksel pusat.
3. Bobot pusat kernel bernilai nol.
4. Jumlah keseluruhan bobot bernilai nol.
3.3 Operasi Geometrik
3.3.1. Pengantar operasi geometrik
Operasi geometrik adalah operasi pada citra yang dilakukan secara geometris
seperti translasi, rotasi, dan penyekalaan. Pada operasi seperti ini terdapat pemetaan
geometrik, yang menyatakan hubungan pemetaan antara piksel pada citra masukan
dan piksel pada citra keluaran
3.3.2. Pergeseran citra
Penggeseran citra ke arah mendatar atau vertikal dapat dilaksanakan dengan
mudah. Rumus yang digunakan sebagai berikut:
π₯ ππππ’ = π₯ππππ + π π₯
π¦ ππππ’ = π¦ππππ + π π¦
Program Pergeseran
% GESER Melakukan operasi penggeseran citra.
F = imread('c:Imagemenara.png');
[tinggi, lebar] = size(F);
sx = 45; % Penggesaran arah horisontal
sy = 15; % Penggesaran arah vertikal
F2 = double(F);
G = zeros(size(F2));
for y=1 : tinggi
31. 30
for x=1 : lebar
xlama = x - sx;
ylama = y - sy;
if (xlama>=1) && (xlama<=lebar) && ...
(ylama>=1) && (ylama<=tinggi)
G(y, x) = F2(ylama, xlama);
else
G(y, x) = 0;
end
end
end
G = uint8(G);
figure(5);
subplot(1,2,1);imshow(F);
subplot(1,2,2);imshow(G);
clear all;
(a) gambar asli (b) gambar hasil pergeseran
32. 31
Gambar 3.9Citra pergeseran
3.3.3. Pemutaran citra
Suatucitradapatdiputardengansudutπ seiring arah jarum jam atau
berlawanan arah jarum jam dengan pusat putaran pada koordinat (0,0).
Program Pemutaran Citra
% ROTASI Melakukan Operasi pemutaran citra.
% Versi 1
% Menggunakan pendekatan pemetaan ke belakang
F = imread('c:Imageapartemen.png');
[tinggi, lebar] = size(F);
sudut = 10; % Sudut pemutaran
rad = pi * sudut/180;
cosa = cos(rad);
sina = sin(rad);
F2 = double(F);
for y=1 : tinggi
for x=1 : lebar
x2 = round(x * cosa + y * sina);
y2 = round(y * cosa - x * sina);
if (x2>=1) && (x2<=lebar) && ...
(y2>=1) && (y2<=tinggi)
G(y, x) = F2(y2, x2);
else
G(y, x) = 0;
34. 33
(b) setelah diputar
Gambar 3.10PemutaranCitra
3.3.4. Interploasi piksel
Hasil pemutaran citra menggunakan rotasi.m menimbulkan efek bergerigi pada objek
citra. Hal itu diakibatkan oleh penggunaan nilai intensitas didasarkan pada piksel tetangga
terdekat, yang dilakukan melalui:
x2 = round(x * cosa + y * sina);
y2 = round(y * cosa - x * sina);
Penggunaan fungsi round (pembulatan ke atas) merupakan upaya untuk
menggunakan intensitas piksel terdekat. Alternatif lain dilakukan dengan menggunakan
floor (pembulatan ke bawah).
35. 34
(a) Sebelum diputar
(b) setelah diputar
Gambar 3.11Interpolasi Piksel
3.3.5. Pemutaran citra sembarang koordinat
Operasi pemutaran citra dapat dilakukan dengan pusat di mana saja; tidak harus dari
(0, 0).Rumus untuk melakukan pemutaran berlawanan arah jarum jam sebesar ο±
π₯ ππππ’ = ( π₯ β π) β πΆππ ( π) + ( π¦ β π) β πππ( π) + π
36. 35
π¦ ππππ’ = ( π¦ β π) β πΆππ ( π) β ( π₯ β π) β πππ( π) + π
Program Pemutaran Citra Sembarang Koordinat
% ROTASI4 Melakukan operasi pemutaran citra.
% Versi 4 - pusat putaran pada pusat citra
F = imread('c:Imagepanorama.png');
Ukuran = size(F);
tinggi = Ukuran(1);
lebar = Ukuran(2);
sudut = 5; % Sudut pemutaran
rad = pi * sudut/180;
cosa = cos(rad);
sina = sin(rad);
F2 = double(F);
m = floor(tinggi / 2);
n = floor(lebar / 2);
for y=1 : tinggi
for x=1 : lebar
x2 = (x-n) * cosa + (y-m) * sina + n;
y2 = (y-m) * cosa - (x-n) * sina + m;
if (x2>=1) && (x2<=lebar) && ...
(y2>=1) && (y2<=tinggi)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
if (x2==lebar) || (y2 == tinggi)
37. 36
G(y, x) = F(y2, x2);
else
intensitas = (1-a) * ((1-b) * F(p,q) + ...
b * F(p, q+1)) + ...
a *((1-b)* F(p+1, q) + ...
b * F(p+1, q+1));
G(y, x) = intensitas;
end
else
G(y, x) = 0;
end
end
end
G = uint8(G);
figure(1); imshow(G);
clear all;
(a) sebelum diputar
38. 37
(c) Setelah diputar
Gambar 3.12 Pemutaran Citra Sembarang Koordinat
3.3.6. Pemutaran citra secara utuh
Memutar citra secara keseluruhan berarti semua area citra diputar
secara penuh dengan sudut tertentu.
Program Rotasi Secara Utuh
% ROTASI5 Melakukan operasi pemutaran citra.
% Versi 5
% Memutar dengan hasil utuh
F = imread('c:ImageBALING.PNG');
Ukuran = size(F);
tinggi = Ukuran(1);
lebar = Ukuran(2);
sudut = 45; % Sudut pemutaran
rad = pi * sudut/180;
cosa = cos(rad);
39. 38
sina = sin(rad);
x11 = 1; y11 = 1;
x12 = lebar; y12 = 1;
x13 = lebar; y13 = tinggi;
x14 = 1; y14 = tinggi;
m = floor(tinggi/2);
n = floor(lebar/2);
% Menentukan pojok
x21 = ((x11-n) * cosa + (y11-m) * sina + n);
y21 = ((y11-m) * cosa - (x11-n) * sina + m);
x22 = ((x12-n) * cosa + (y12-m) * sina + n);
y22 = ((y12-m) * cosa - (x12-n) * sina + m);
x23 = ((x13-n) * cosa + (y13-m) * sina + n);
y23 = ((y13-m) * cosa - (x13-n) * sina + m);
x24 = ((x14-n) * cosa + (y14-m) * sina + n);
y24 = ((y14-m) * cosa - (x14-n) * sina + m);
ymin = min([y21 y22 y23 y24]);
xmin = min([x21 x22 x23 x24]);
ymak = max([y21 y22 y23 y24]);
xmak = max([x21 x22 x23 x24]);
40. 39
lebar_baru = xmak - xmin + 1;
tinggi_baru = ymak - ymin + 1;
tambahan_y = floor((tinggi_baru-tinggi)/2);
tambahan_x = floor((lebar_baru-lebar)/2);
F2=zeros(tinggi_baru, lebar_baru);
for y=1 : tinggi
for x=1 : lebar
F2(y+tambahan_y, x+tambahan_x) = F(y, x);
end
end
figure(1);
imshow( uint8(F2));
% Putar citra
m = floor(tinggi_baru/2);
n = floor(lebar_baru/2);
for y=1 : tinggi_baru
for x=1 : lebar_baru
x2 = round((x-n) * cosa + (y-m) * sina + n);
y2 = round((y-m) * cosa - (x-n) * sina + m);
if (x2>=1) && (x2<=lebar_baru) && ...
(y2>=1) && (y2<=tinggi_baru)
G(y, x) = F2(y2,x2);
else
42. 41
(b) Setelah diputar
Gambar 3.13. Pemutaran Citra Secara Utuh
3.3.7. Pembesaran citra
Suatu citra dapat diperbesar dengan membuat setiap piksel menjadi beberapa piksel.
Program Perbesaran Citra
octave:1> function G = perbesar(berkas, sy, sx)
> % PERBESAR Melakukan operasi pembesaran citra.
> % Masukan: berkas = nama berkas image
> % sy : skala pembesaran pada sumbu Y
> % sx : skala pembesaran pada sumbu X
> %
> % Versi 1
>
> F = imread(berkas);
> Ukuran = size(F);
43. 42
> tinggi = Ukuran(1);
> lebar = Ukuran(2);
>
> tinggi_baru = tinggi * sy;
> lebar_baru = lebar * sx;
>
> F2 = double(F);
> for y=1 : tinggi_baru
> y2 = ((y-1) / sy) + 1;
> for x=1 : lebar_baru
> x2 = ((x-1) / sx) + 1;
> G(y, x) = F(floor(y2), floor(x2));
> end
> end
>
> G = uint8(G);
> endfunction
octave:2> Img = Perbesar2('C:Imagemayudi.png', 4, 4);
octave:3>imshow(Img);
(a) Gambar asli
44. 43
(b) Setelah pembesaran
Gambar 3.14Pembesaran citra
3.3.8. Pengecilan citra
Suatu citra dapat diperkecil dengan membuat setiap piksel menjadi beberapa piksel.
Program Pengecilan Citra
octave:1> function G = perbesar(berkas, sy, sx)
> % PERkecilMelakukan operasi pembesaran citra.
> % Masukan: berkas = nama berkas image
> % sy : skala pembesaran pada sumbu Y
> % sx : skala pembesaran pada sumbu X
> %
> % Versi 1
>
> F = imread(berkas);
> Ukuran = size(F);
46. 45
(a) Citra asli
(b) Hasil perkecil
Gambar 3.15Pengecilan citra
3.3.9. Pencerminan citra
Pencerminan yang
umumdilakukanberupapencerminansecaravertikaldanpencerminansecara
horizontal.Pencerminansecara horizontal
dilakukandenganmenukarkanduapiksel yang berseberangankir-kanan.
47. 46
ALGORITMA β Mencerminkan gambar secara horizontal
Masukan:
ο· f (M,N): Citra masukan berukuran M baris dan N kolom
Keluaran:
ο· g (M, N): Hasil citra yang telah dicerminkan secara horizontal
FOR baris ο¬ 1 TO M
FOR kolom ο¬ 1 TO N
g(baris, kolom) ο¬ f(N β baris + 1, kolom)
END-FOR
END-FOR
Program Pencerminan secara Horizontal
octave:1> function G = cerminh(F)
> % CERMINH Berfungsi untuk mencerminkan citra
> % secara horizontal
> % Masukan: F = Citra berskala keabuan
>
> [tinggi, lebar] = size(F);
>
> for y=1 : tinggi
> for x=1 : lebar
> x2 = lebar - x + 1;
> y2 = y;
>
> G(y, x) = F(y2, x2);
> end
> end
> endfunction
48. 47
octave:2>
octave:2> G = uint8(G);
error: `G' undefined near line 2 column 11
error: evaluating argument list element number 1
octave:2> F = imread('C:Imageacha.png');
warning: your version of GraphicsMagick limits images to 16 bits per
pixel
octave:3> G = cerminh(F);
octave:4> figure(2);
octave:5> subplot(1,2,1);imshow(F);
octave:6> subplot(1,2,2);imshow(G);
(a) Gambar asli (b) Gambar Hasil Pencerminan
Gambar 3.16 Pencerminan Citra Secara Horizontal
49. 48
Pencerminan secara Vertical
function G = cerminv(F)
% CERMINV Berfungsi untuk mencerminkan citra
% secara vertikal
% Masukan: F = Citra berskala keabuan
[tinggi, lebar] = size(F);
for y=1 : tinggi
for x=1 : lebar
x2 = x;
y2 = tinggi - y + 1;
G(y, x) = F(y2, x2);
end
end
endfunction
G = uint8(G);
F = imread('C:Imageacha.png');
G = cerminv(F);
figure(1);
subplot(1,2,1);imshow(F);
subplot(1,2,2);imshow(G);
50. 49
(a) Gambar asli (b) Setelah diolah
Gambar 3.17 Pencerminan Citra Secara Vertical
3.3.10. Efek Ripple
Efek ripple (riak) adalah aplikasi transformasi citra yangmembuat gambar
terlihat bergelombang. Efek riak dapaat dibuat baik pada arah x maupun y.
Transformasinya seperti berikut:
x=x^'+a_x sin 2Οy'/T_x
y=y^'+a_y sin 2Οx'/T_y
Dalam hal ini, ax dan ay menyatakan amplitudo riak gelombang sinus,
sedangkan Tx dan Ty menyatakan periode gelombang sinus.
Program Ripple
octave:1> function G = ripple(F, ax, ay, tx, ty)
> % RIPPLE Berfungsi untuk melakukan transformasi 'ripple'.
>
> dimensi = size(F);
51. 50
> tinggi = dimensi(1);
> lebar = dimensi(2);
> for y=1 : tinggi
> for x=1 : lebar
> x2 = x + ax * sin(2 * pi * y / tx);
> y2 = y + ay * sin(2 * pi * x / ty);
> if (x2>=1) && (x2<=lebar) && ...
> (y2>=1) && (y2<=tinggi)
>
> % Lakukan interpolasi bilinear
> p = floor(y2);
> q = floor(x2);
> a = y2-p;
> b = x2-q;
>
> if (floor(x2)==lebar) || ...
> (floor(y2) == tinggi)
> G(y, x) = F(floor(y2), floor(x2));
> else
> intensitas = (1-a)*((1-b)*F(p,q) + ...
> b * F(p, q+1)) + ...
> a *((1-b)* F(p+1, q) + ...
> b * F(p+1, q+1));
>
> G(y, x) = intensitas;
> end
> else
> G(y, x) = 0;
52. 51
> end
> end
> end
>
> G = uint8(G);
> endfunction
octave:2> F = imread('C:imagemonas.png');
warning: your version of GraphicsMagick limits images to 16 bits per
pixel
octave:3> G = ripple(F,10,15,120, 250);
octave:4> figure(1);
octave:5> subplot(1,2,1);imshow(F);
octave:6> subplot(1,2,2);imshow(G);
(a) Gambar asli (b) setelah diberi efek
Gambar 3.18 Efek Ripple Citra
53. 52
BAB IV
PENUTUP
4.1 Kesimpulan
Pengolahan citra menjadi suatu yang sangat diperlukan pada era digital saat
ini. Pengolahan dilakukan untuk mendapatkan hasil citra yang diinginkan.
Seorang yang ahli informatika tentu tidak hanya bisa menggunakan aplikasi
pengolahan citra tetapi juga harus mengetahui bagaimana citra tersebut dari citra
asli dimanipulasi menjadi citra yang diinginkan. Tentu saja, ini berhubungan
dengan kode program yang menjadi dasar pengolahan citra. Dalam hal ini dibantu
dengan tool yakni OCTAVE. Dengan tool ini kita mendapatkan gambaran secara
umum proses sebuah citra dioleh ke bentuk lain dengan menggunakan algoritma
dan pemrograman.
4.2 Saran
ο· Sebelum mempelajari pengolahan citra dengan OCTAVE sebaiknya
menguasai dasar pemrograman.
ο· Penggunaan ilmu matematika sangat dibutuhkan dalam pengolahan citra
digital karena berkaitan dengan ukuran.