Hasil Oprasi Logika NOT
Modul Pengolahan Citra| 50
Pembangkitan Noise dan Reduksi Noise
Modul Pengolahan Citra| 51
Pembangkitan Noise dan Reduksi Noise
Pada saat proses capture (pengambilan gambar), ada beberapa gangguan yang
mungkin terjadi, seperti kamera tidak fokus atau munculnya bintik-bintik yang bisa
jadi disebabkan oleh proses captureyang tidak sempurna. Setiap gangguan pada citra
dinamakan dengan noise. Noise pada citra tidak hanya terjadi karena ketidak-
sempurnaan dalam proses capture, tetapi bisa juga disebabkan oleh kotoran-kotoran
yang terjadi pada citra. Berdasarkan bentuk dan karakteristiknya, noise pada citra
dibedakan menjadi, beberapa macam yaitu:
(1) Gaussian
(2) Speckle
(3) Salt & Pepper
Noise salt and pepper
Noise salt and pepper adalah bentuk noise yang biasanya terlihat titik-titik hitam
dan putih pada citra seperti tebaran garam dan merica. noise salt and pepper
disebabkan karena terjadinya error bit dalam pengiriman, piksel-piksel yang tidak
berfungsi dan kerusakan pada lokasi memori (Roomi, Lakshmi, Kumar,2006).
Derau ini termasuk dalam degradasi statistikal yang diakibatkan sensor-sensor
pencitraan elektronis, granularitas film, dan fluktuasi cahaya atmosfer. Piksel
yang mengalami degradasi ini akan terlihat berbeda dengan piksel
ketetanggaannya. Untuk bisa menambahkan gangguan (noise) pada citra digital
kita bisa menggu-nakan fungsi:
J = imnoise(I,type)J = imnoise(I,type,parameters)
Noise salt and pepper dengan Matlab
>> image = imread ('apple.jpg');
>> N2=imnoise(image,'salt & pepper');
>> subplot(1,2,1),imshow(image),title('Gambar Asli'),
subplot(1,2,2),imshow(N2),title('Resize');
Modul Pengolahan Citra| 52
Keterangan
Baris (1) image = imread ('apple.jpg'); // Berfungsi untuk membaca image
Baris (2) N2=imnoise(image,'salt & pepper'); // Fungsi penambahan noise
Baris (3) subplot(1,2,1),imshow(image),title('Gambar Asli'),
subplot(1,2,2),imshow(N2),title('Resize'); // Menampilkan hasil
Hasil Noise salt and pepper dengan Matlab
Noise Gaussian
Noise gaussian merupakan model noise yang mengikuti distribusi normal
standard dengan rata-rata nol dan standard deviasi 1. Efek dari gaussian noise ini,
pada gambar muncul titik-titik berwarna yang jumlahnya sama dengan prosentase
noise
Noise Gaussian dengan matlab
>> image = imread ('apple.jpg');
>> N1=imnoise(image,'gaussian');
>> subplot(1,2,1),imshow(image),title('Gambar Asli'),
subplot(1,2,2),imshow(N1),title('Resize');
Modul Pengolahan Citra| 53
Keterangan
Baris (1) image = imread ('apple.jpg'); // Berfungsi Untuk Membaca image
Baris (2) N1=imnoise(image,'gaussian'); // Fungsi Noise
Baris (3) subplot(1,2,1),imshow(image),title('Gambar Asli'),
subplot(1,2,2),imshow(N1),title('Resize'); // Menampilkan Hasil
Hasil Noise Gaussian dengan matlab
Noise speckle
Noise speckle merupakan model noise yang memberikan warna hitam pada titik
yang terkena noise.
Noise speckle dengan matlab
>> image = imread ('apple.jpg');
>> N3=imnoise(image,'speckle');
>> subplot(1,2,1),imshow(image),title('Gambar Asli'),
subplot(1,2,2),imshow(N3),title('Resize');
Keterangan
Baris (1) image = imread ('apple.jpg'); // Berfungsi untuk membaca image
Baris (2) N3=imnoise(image,'speckle'); //Berfungsi untuk menambahkan noise
Baris (3) subplot(1,2,1),imshow(image),title('Gambar Asli'),
subplot(1,2,2),imshow(N3),title('Resize'); // Menampilkan hasil
Modul Pengolahan Citra| 54
Hasil Noise speckle dengan matlab
Reduksi Noise
Reduksi Noise dengan Matlab
>> gambar = imread('apple.jpg');
>> A = imnoise(gambar,'salt & pepper',0.2);
>> r = medfilt2(A(:, :, 1), [3 3]);
>> g = medfilt2(A(:, :, 2), [3 3]);
>> b = medfilt2(A(:, :, 3), [3 3]);
>> hasil = cat(3, r, g, b);
>> subplot(1,2,1);imshow(A),title('citra awal dengan noise'),
subplot(1,2,2);imshow(hasil),title('citra hasil Reduksi Noise');
Keterangan
Baris (1) gambar = imread('apple.jpg'); //Berfungsi untuk menampilkan image
Baris (2) A = imnoise(gambar,'salt & pepper',0.2); //Fungsi Penambahan Noise
Baris (3) r = medfilt2(A(:, :, 1), [3 3]); //Fungsi mengambil komponen Rad
Baris (4) g = medfilt2(A(:, :, 2), [3 3]); // Fungsi mengambil komponen Green
Baris (5) b = medfilt2(A(:, :, 3), [3 3]); // Fungsi mengambil komponen Blue
Baris (6) hasil = cat(3, r, g, b); // meng-concatenate tiga matriks (r, g, dan b)
Baris (7) subplot(1,2,1);imshow(A),title('citra awal dengan noise'),
subplot(1,2,2);imshow(hasil),title('citra hasil Reduksi Noise'); //
Menampilkan Hasil
Modul Pengolahan Citra| 55
Hasil Reduksi Noise dengan Matlab
Modul Pengolahan Citra| 56
Deteksi Tepi Citra
Modul Pengolahan Citra| 57
Deteksi Tepi
Deteksi tepi pada pengolahan citra, pada pemograman matlab proses pendeteksian
tepi menggunakan perintah edge. Terdapat beberapa metode yang dilakukan pada
deteksi tepi yaitu
a. Prewitt
b. Roberts
c. Lapacian of Gaussian
d. Canny.
Operator sobel
Peninjauan pengaturan pixel di sekitar pixelnya (x,y) adalah :
0 1 2
[ 7 ( , ) 3]
6 5 4
Operator sobel adalah magnitudo dari gradien yang dihitung dengan :
= √ 2 + 2
dalam hal ini turunan parsial dihitung dengan :
= ( 2 + 3 + 4) − ( 0 + 7 + 6)
= ( 0 + 1 + 2) − ( 6 + 5 + 4)
Dengan konstanta c = 2. Dalam bentuk mask, sy dan sx dapat dinyatakan sebagai :
−1 0 1 121
= [−2 0 2] dan = [ 0 0 0 ]
−1 0 1 −1 −2 −1
Arah tepi dihitung dengan persamaan :
( , ) = −1 ( )
Modul Pengolahan Citra| 58
Berikut adalah contoh penggunaan operator sobel . Konvolusi pertama dilakukan
terhadap pixel yang bernilai 1 (titik pusat mask) :
= (3)(-1) + (2)(-2) + (3)(-1) + (1)(1) + (3)(2) + (6)(1) = 5
= (3)(1) + (4)(2) + (1)(1) + (3)(-1) + (5)(-2) + (6)(-1) =-2
34151 ∗∗∗∗∗
21323 ∗7∗
3 5 6 1 3 menjadi ∗ ∗ ∗
43562 [ ]
[2 1 1 3 1]
−1 0 1 121
= [−2 0 2] dan = [ 0 0 0 ]
−1 0 1 −1 −2 −1
Contoh dengan menggunakan matlab :
Deteksi tepi dengan Sobel dengan nilai = 0.05
>> image = imread('agray.jpg');
>> sobeltres = edge(image, 'sobel', 0.05);
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(sobeltres),title('image sobel dengan nilai');
Keterangan image = imread('agray.jpg');
sobeltres = edge(image, 'sobel', 0.05);
Baris (1) subplot(1,2,1),imshow(image),title('image asli'),
Baris (2) subplot(1,2,2),imshow(sobeltres),title('image sobel dengan nilai');
Baris (3)
Modul Pengolahan Citra| 59
Hasil dari deteksi tepi sobel dengan nilai 0.05
Deteksi tepi dengan Sobel
>> image = imread('agray.jpg');
>> dtsobel = edge(image, 'sobel');
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtsobel),title('image sobel');
Keterangan
Baris (1) image = imread('agray.jpg'); // Berfungsi membaca image
Baris (2) dtsobel = edge(image, 'sobel'); // Fungsi deteksi tepi sobel
Baris (3) subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtsobel),title('image sobel'); //menampilkan hasil
Hasil dari deteksi tepi sobel
Modul Pengolahan Citra| 60
Deteksi tepi dengan Canny
Deteksi tepi Canny dengan matlab
>> image = imread('agray.jpg');
>> dtcanny = edge(image, 'canny');
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtcanny),title('image canny');
Keterangan
Baris (1) image = imread('agray.jpg'); // Berfungsi untuk membaca image
Baris (2) dtcanny = edge(image, 'canny'); // Fungsi deteksi tepi canny
Baris (3) subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtcanny),title('image canny'); //Menampilkan
Hasil
Hasil dari deteksi tepi Canny
Deteksi tepi dengan Canny dengan Nilai
>> image = imread('agray.jpg');
>> cannynilai = edge(image, 'canny', [0.04, 0.10], 1.5);
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(cannynilai),title('image Canny Dengan Nilai');
Modul Pengolahan Citra| 61
Keterangan
Baris (1) image = imread('agray.jpg'); // Berfungsi untuk membaca image
Baris (2) cannynilai = edge(image, 'canny', [0.04, 0.10], 1.5);// Fungsi deteksi tepi
canny
Baris (3) subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(cannynilai),title('image Canny Dengan Nilai'); //
Menampilkan hasil
Hasil dari deteksi tepi Canny dengan Nilai
Deteksi tepi dengan LoG
>> image = imread('agray.jpg');
>> dtLoG = edge(image, 'log');
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtLoG),title('image LoG');
Keterangan
Baris (1) image = imread('agray.jpg'); //Berfugsi untuk membaca image
Baris (2) dtLoG = edge(image, 'log'); // Berfungsi untuk deteksi tepi LoG
Baris (3) subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtLoG),title('image LoG'); // Menampilkan hasil
Modul Pengolahan Citra| 62
Hasil dari deteksi tepi LoG
Deteksi tepi dengan LoG dengan Nilai
>> image = imread('agray.jpg');
>> LOG = edge(image, 'log', 0.003, 2.25);
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(LOG),title('image LoG Dengan Nilai');
Keterangan
Baris (1) image = imread('agray.jpg'); // Berfungsi untuk membaca image
Baris (2) LOG = edge(image, 'log', 0.003, 2.25); //
Baris (3) subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(LOG),title('image LoG Dengan Nilai');
Hasil dari deteksi tepi
Modul Pengolahan Citra| 63
Deteksi tepi dengan Prewitt
>> image = imread('agray.jpg');
>> dtprewitt = edge(image, 'prewitt');
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtprewitt),title('image prewitt');
Keterangan
Baris (1) image = imread('agray.jpg'); // Berfungsi untuk membaca image
Baris (2) dtprewitt = edge(image, 'prewitt'); // Berfungsi untuk deteksi tepi prewitt
Baris (3) subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(dtprewitt),title('image prewitt'); // menampilkan
hasil
Hasil yang diperoleh :
Modul Pengolahan Citra| 64
Deteksi tepi dengan Roberts
>> image = imread('agray.jpg');
>> robert = edge(image,'roberts');
>> subplot(1,2,1),imshow(image),title('image asli'),
subplot(1,2,2),imshow(robert),title('image robert');
Hasil yang diperoleh :
Modul Pengolahan Citra| 65
Kompresi Data Citra
Modul Pengolahan Citra| 66
Kompresi Data Citra
Proses kompresi adalah proses mereduksi ukuran suatu data untuk menghasilkan
representasi digital yang lebih padat namun tetap mewakili kuantitas informasi pada
data tersebut. Tujuan dari kompresi adalah Mengurangi data yang berlebihan,
sehingga ukuran data menjadi lebih kecil / ringan untuk proses transmisi.
Lossless Compression
>> gambar = imread('pohon1.png');
>> R=gambar(:,:,1);
>> G=gambar(:,:,2);
>> B=gambar(:,:,3);
>> Grayimg=(0.2126*R)+(0.7152*G)+(0.0722*B);
>> hasil=imcrop(Grayimg,[0,0,10,10]);
>> subplot(1,3,1),imshow(gambar),title('citra asli'),subplot(1,3,2),
imshow(Grayimg),title('citra grayscal'),subplot(1,3,3),
imshow(hasil),title('citra hasil');
Keterangan
Baris (1) gambar = imread('pohon1.png'); // Berfungsi untuk membaca image
Baris (2) R=gambar(:,:,1); //Berfungsi untuk mengmbil komponen RED
Baris (3) G=gambar(:,:,2); // Berfungsi untuk mengmbil komponen GREEN
Baris (4) B=gambar(:,:,3); // Berfungsi untuk mengmbil komponen BLUE
Baris (5) Grayimg=(0.2126*R)+(0.7152*G)+(0.0722*B); // Fungsi Graysqal
Baris (6) hasil=imcrop(Grayimg,[0,0,10,10]); // Fungsi Cropping
Baris (7) asci=uint8(hasil); //Mengambil Hasil
Baris (8) subplot(1,3,1),imshow(gambar),…. // Menmpilkan hasil
Hasil dari Lossless Compression
Modul Pengolahan Citra| 67
Morphological Image Processing
Modul Pengolahan Citra| 68
Dilasi
Dilasi merupakan teknik untuk memperbesar segmen objek (citra biner) dengan
menambah lapisan disekitar objek.
Dilasi dengan menggunakan matlab
>> img=imread('pohon1.png');
>> gray=rgb2gray(img);
>> se = strel('ball',5,5);
>> dilat=imdilate(gray,se);
>> subplot(1,3,1),imshow(img),title('image RGB'), subplot(1,3,2),imshow(gray),
title('image gray'),subplot(1,3,3),imshow(dilat),title('image dilasi');
Keterangan img=imread('pohon1.png');
Baris (1) gray=rgb2gray(img);
Baris (2) se = strel('ball',5,5);
Baris (3) dilat=imdilate(gray,se);
Baris (4) subplot(1,3,1),imshow(gambar),title('image RGB'),
Baris (5) subplot(1,3,2),imshow(gray), title('image gray'),
subplot(1,3,3),imshow(dilat),title('image dilasi');
Hasil Dilasi dengan Matlab
Modul Pengolahan Citra| 69
Erosi
Erosi (pengikisan) merupakan kebalikan dari dilasi, yaitu bertujuan untuk
memperkecil atau memperkecil atau mengikis tepi objek
Erosi dengan menggunakan matlab
>> img=imread('pohon1.png');
>> gray=rgb2gray(img);
>> se = strel('ball',5,5);
>> dilat=imerode(gray,se);
>> subplot(1,3,1),imshow(img),title('image RGB'), subplot(1,3,2),imshow(gray),
title('image gray'),subplot(1,3,3),imshow(dilat),title('image erosi');
Keterangan img=imread('pohon1.png');
gray=rgb2gray(img);
Baris (1) se = strel('ball',5,5);
Baris (2) dilat=imerode(gray,se);
Baris (3) subplot(1,3,1),imshow(img),…
Baris (4)
Baris (5)
Hasil
Modul Pengolahan Citra| 70
Object Counting
Objek counting merupakan perhitungan objek berdasarkan konektivitas terhadap
piksel disekitarnya.
Object Counting dengan menggunakan matlab
>> img=imread('pohon1.png');
>> gray=rgb2gray(img);
>> thresh=graythresh(gray);
>> imbw=im2bw(gray,thresh);
>> [labeled,numObjects] = bwlabel(imbw,8);
>> imlabel = label2rgb(labeled, @spring, 'c', 'shuffle');
>> subplot(1,3,1),imshow(img),title('image RGB'),subplot(1,3,2),imshow(imbw),
title('image biner'),subplot(1,3,3),imshow(imlabel),title('image counting');
Keterangan img=imread('pohon1.png'); //Berfugsi untuk membaca image
gray=rgb2gray(img); // Berungsi untuk merubah RGB menjadi graysqal
Baris (1) thresh=graythresh(gray); //
Baris (2) imbw=im2bw(gray,thresh); //Berfungsi merubah menjadi citra biner
Baris (3) [labeled,numObjects] = bwlabel(imbw,8);
Baris (4) imlabel = label2rgb(labeled, @spring, 'c', 'shuffle');
Baris (5) subplot(1,3,1),imshow(img),…. // menampilkan hasil
Baris (6)
Baris (7)
Hasil Object Counting
Modul Pengolahan Citra| 71
DAFTAR PUSTAKA
Ahmad, Usman, 2005, Pengolahan Citra Digital dan Teknik
Pemrogramannya , Ed.1,Graha Ilmu, Yogyakarta.
Astuti Fajar, 2013. Pengolahan Citra Digital Konsep & Teori OFFSET ,
Yogyakarta
Balza A, Kartika F. 2005. Teknik Pengolahan Citra Digital Menggunakan Delphi.
Andi Publising, Yogyakarta
Putra, Darma .2010. Pengolahan Citra Digital , ANDI OFFSET , Yogyakarta.
Hery Mauridhi, Muntasa arif, 2010. Konsep Pengolahan Citra Digital dan
Ekstrasi Fitur, Graha Ilmu, Yogyakarta.
Sobel N Lew MS.2000. Robust Computer Vision : Teory and Applications.
Leiden : Leiden Institute of Advance Computer Science
Schober, Jean-Pierre. Thomas Hermes, Otthein Herzog.2004. Content-based
image retrieval by Ontologi-Based Object Recognition. TZI Center for computing
technology University . Bremen, Germany.
Modul Pengolahan Citra| 72
Buku ini memuat materi pengolahan citra dasar, yang di bahas pada buku ini
merupakan langkah awal untuk proses pengolahan citra yang lebih komplek.
Buku ini dilengkapi dengan praktek langsung menggunakan matlab
Operasi Titik (Point Operation), membahas mengenai Histogram
Citra, Citra RGB, Citra grayscale, Brightness adjustment, Negation,
Koreksi gamma
Operasi Spasial (Spatial Operation) / Filtering, membahas Kernel &
Konvolusi, Filtering
Beberapa filter yang sering digunakan Low pass (Mean Filter,
Gaussian Filter), High pass dan Median
Oprasi Geometri, membahas mengenai Translasi , Penskalaan ,
Rotasi dan Refleksi
Oprasi Aritmatika berisi mengenai Penjumlahan, Pengurangan,
Perkalian, Pembagian, Logika AND/NAND, Logika OR/NOR,
Logika XOR/XNOR dan Logika NOT
Pembangkitan Noise membahas pembangkitan noise Gaussian,
Speckle, Salt & Pepper dan Reduksi Noise
Deteksi Tepi Citra, pendeteksian tepi menggunakan perintah edge
terdiri dari Prewitt, Roberts, Lapacian of Gaussian dan Canny
Kompresi Data Citra menggunakan Lossless Compression , proses
mereduksi ukuran suatu data untuk menghasilkan representasi
digital yang lebih padat
Morphological Image Processing terdiri dari Dilasi, Erosi dan
Object Counting
Modul Pengolahan Citra| 73
Modul Pengolahan Citra| 74