Anda di halaman 1dari 19

LAPORAN RESMI

PENGOLAHAN CITRA DIGITAL


MODUL 1
Operasi Aritmatika dan Geometri

Disusun Oleh :
TANGGAL PRAKTIKUM

: KAMIS, 02 OKTOBER 2014

NAMA

: RACHMAD NURHIDAYAT

NRP

: 12.04.111.00064

KELAS

: D2

DOSEN PENGAMPU

: MULAAB,S.KOM.,M.KOM.

Disetujui : Bangkalan, ..

KURNIAWAN
11.04.1.1.1.00100
LABORATORIUM TEKNOLOGI
INFORMASI DAN APLIKASI
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
T.A. 2014-2015

BAB I
PENDAHULUAN
1.1.

Latar Belakang

Citra direpresentasikan dalam bentuk matrik. Berbagai macam citra


disimpan menggunakan format berbeda seperti bmp, png, gif, jpg atau format
lainnya. Umumnya citra warna adalah citra RGB (Red, Green, Blue).
Tidak semua citra yang diperoleh menggunakan kamera atau device lain
menghasilkan citra berkualitas yang disebabkan oleh faktor pencahayaan, kondisi
obyek maupun kamera yang digunakan.
Oleh karena itu, diperlukan beberapa metode pengolahan citra untuk
memperbaiki kualitas tersebut. Bahasa pemrograman yang digunakan pada
praktikum Pengolahan Citra Digital adalah Matlab.
1.2.

Tujuan
1. Mahasiswa mampu menggunakan Matlab untuk pengolahan citra digital.
2. Mahasiswa mampu memahami dan mengimplementasikan operasi
aritmatika.
3. Mahasiswa mampu memahami dan mengimplementasikan operasi
geometri.

BAB II
DASAR TEORI
Citra direpresentasikan dalam bentuk matrik. Berbagai macam citra
disimpan menggunakan format berbeda seperti bmp, png, gif, jpg atau format
lainnya. Umumnya citra warna adalah citra RGB (Red, Green, Blue). Tidak semua
citra yang diperoleh menggunakan kamera atau device lain menghasilkan citra
berkualitas yang disebabkan oleh faktor pencahayaan, kondisi obyek maupun
kamera yang digunakan. Oleh karena itu, diperlukan beberapa metode pengolahan
citra untuk memperbaiki kualitas tersebut. Bahasa pemrograman yang digunakan
pada praktikum Pengolahan Citra Digital adalah Matlab. Pada modul 1 ini,
bertujuan supaya praktikan mampu mempelajari sekaligus mengimplementasikan
operasi aritmatika dan geometri pada obyek citra digital.
1. Operasi titik
a. Penambahan, pengurangan, perkalian dan pembagian intensitas citra
b. Penambahan, pengurangan, dan perkalian dua buah citra
c. Negatif citra
d. Histogram dan Ekualisasi Histogram
e. Operasi Boolean dua buah citra (and, or, not)
2. Operasi geometri
a. Translasi
b. Rotasi
c. Penskalaan (zoom in dan zoom out)
d. Pencerminan (flipping)
1.1.Operasi titik penambahan dan pengurangan intensitas
Operasi ini dilakukan dengan melakukan manipulasi nilai gray citra pada
setiap titik, misalkan suatu citra cameraman.tif akan ditambah kecarahannya
atau dikurangi kecerahannya (misalkan untuk setiap piksel akan ditambah 100
untuk menambah kecerahan dan mengurangi 50 untuk mengurangi kecerahan
citra), maka code dalam matlab dapat dilihat pada berikut ini
a=imread('cameraman.tif');
b=a+100;
c=a-50;
imshow([a b c]);
Hasil dari operasi titik dapat dilihat pada Gambar 1.1 berikut ini

Gambar 1.1 Hasil Perbaikan Citra Menggunakan Operasi Titik


1.2.Operasi titik melalui ekualisasi histogram
Perbaikan citra menggunakan histogram merupakan cara yang paling
banyak digunakan oleh para peneliti. Pada prinsipnya ekualisasi histogram
melakukan pemerataan distribusi gray yang ada pada citra sebagaimana terlihat
pada code berikut ini
a=imread('cameraman.tif');
b=histeq(a);
imshow([a b]);
hasil dari code tersebut dapat dilihat pada Gambar 1.2 berikut ini

Gambar 1.2 Hasil Perbaikan Citra Menggunakan Ekualisasi Histogram

BAB III
TUGAS PENDAHULUAN
Soal.
1. Berilah penjelasan secara detil materi operasi titik (a sampai e)
2. Berilah penjelasan secara detil materi operasi geometri (a sampai d)
Jawab
1. Operasi Titik
a. Penambahan, pengurangan, perkalian dan pembagian intensitas citra
Operasi ini dilakukan dengan melakukan manipulasi nilai gray citra pada
setiap titik, misalkan suatu citra cameraman.tif akan ditambah
kecarahannya atau dikurangi kecerahannya (misalkan untuk setiap piksel
akan ditambah 100 untuk menambah kecerahan dan mengurangi 50 untuk
mengurangi kecerahan citra), maka code dalam matlab dapat dilihat pada
berikut ini
a=imread('cameraman.tif');
b=a+100;
c=a-50;
d=a*20;
e=a div 10;
b. Penambahan, pengurangan, dan perkalian dua buah citra
Penjumlahan atau pengurangan dua buah citra A dan B
C(x,y) = A(x,y) B(x,y)
Perkalian dua buah citra
C(x,y) = A(x,y).B(x,y)
c. Negatif citra
Yaitu mendapatkan citra negatif meniru film negatif pada fotografi
dengan caramengurangi nilai intensitaspixel dari nilai keabuan
maksimum.
Misalnya pada citra dengan 256 derajat keabuan (8 bit), citra negatif
diperoleh dengan persamaan :
f(x,y) = 255-f(x,y)
d. Histogram dan Ekualisasi Histogram

Perbaikan citra menggunakan histogram merupakan cara yang paling


banyak digunakan oleh pada peneliti. Pada prinsipnya ekualisasi
histogram melakukan pemerataan distribusi gray yang ada pada citra
sebagaimana terlihat pada code berikut ini
a=imread('cameraman.tif');
b=histeq(a);
imshow([a b]);
e. Operasi Boolean dua buah citra (and, or, not)
Operasi Boolean and
C(x,y) = A(x,y) ^ B(x,y)
Operasi Boolean or
C(x,y) = A(x,y) v B(x,y)
Operasi Boolean not
C(x,y) = ~A(x,y)
2. Operasi Geometri
a. Translasi
Translasi dilakukan berdasar rumus:
x=x+m
y=y+n
m = besarnya pergeseran dalam arah x
n = besarnya pergeseran dalam arah y.
Jika A = Gambar asal maka
B(x,y)=A(x+m,y+n)
b. Rotasi
Rotasi dilakukan dengan persamaan:
x=x cos() y sin()
y=x sin() + y cos()
Dalam hal ini, adalah sudut rotasi berlawanan dengan arah jarum jam
A = Gambar asli

B(x,y)=A(x cos() y sin(), x sin() + y cos())


c. Penskalaan (zoom in dan zoom out)
Penskalaan citra/image zooming: pengubahan ukuran citra
(pembesaran/zoom out atau pengecilan /zoom in)
Rumus penskalaan citra:
x=sx.x
y=sy.y
sx dan sy adalah faktor penyekalaan, masing-masing dalam arah x dan y
Jika citra semula adalah A dan citra hasil penyekalaan adalah B, maka
penyekalaan citra dinyatan sebagai:
B(x,y)=A(sx.x, sy.y)
d. Pencerminan (flipping)
Adalah operasi geometri yang sama dengan pencerminan
Dua macam flipping:
Horisontal
Adalah pencerminan terhadap sumbu Y
B(x,y)=A(N-x,y)
Vertikal
Adalah pencerminan terhadap sumbu X
B(x,y)=A(x,M-y)

BAB IV
IMPLEMENTASI

4.1 Tugas Praktikum


4.1.1 Soal
1. Tunjukkan citra red, citra green, citra blue dan perpaduan dari ketiga
citra warna tersebut (citra kuning, citra ungu, citra orange). Selanjutnya
ubahlah citra asal ke dalam citra grayscale dan citra biner (tunjukkan
perbedaan dan sebutkan alasannya)
2.Baca citra a (a= imread('cameraman.tif');)
Tambahkan setiap piksel citra a dengan 128 dan simpan dengan nama citra
b (b=imadd(a,128);)
Nilai intensitas a pada koordinat baris 100 kolom 230 (c = a(100, 230);)
Kurangkan

setiap

intensitas

piksel

citra

dengan

128

(d=imsubtract(b,128);) atau d=uint8(double(c)-128);


Kalikan citra a dengan 0.5 dan simpan dengan nama citra b
(immultiply(b,0.5);
Bagi setiap intensitas elemen dari kolom b dengan 2 (imdivide(b,2);
Keterangan :
Tidak boleh menggunakan perintah imadd, imsubtract, immultiply dan
imdivide. Tetapi menambahkan dan mengurangkan setiap elemen dengan
212. Kemudian lakukan perkalian dan pembagian setiap intensitas piksel
dengan 5. Tunjukkan perbandingan dari keempat operasi aritmatika
tersebut dan sebutkan alasannya
3. Gunakanlah operasi Boolean untuk mengkombinasikan dua buah citra
(Operasi AND, OR, NOT). Tunjukkan hasil kombinasi dua citra tersebut
(sebelumnya, ubahlah kedua citra tersebut menjadi citra biner). Mengapa
demikian?
4. Operasi Geometri
a). Translasi (pergeseran (m,n)). Translasi citra dapat diimplementasikan
dengan menyalin citra A ke B: B[x][y] =A[x+m][y+n]
Tunjukkan perbedaan citra asal dengan citra translasi m = 25 dan n = 50.

b) Rotasi (perputaran). Rotasi citra dapat diimplementasikan dengan


rumus:
B[x][y] = B [x cos () y sin ()][ x sin () + y cos ()]
adalah sudut rotasi yang berlawanan dengan arah jarum jam.
Tunjukkan perbedaan citra asal dengan citra rotasi 450 dan -450.
c). Penskalaan citra dapat diimplementasikan dengan rumus:
B[x][y] = B[sx . x][ sx . y]
Tunjukkan perbedaan citra asal dengan citra zoom in 2 dengan zoom out 2.
Berikan penjelasannya.
d).Pencerminan citra (flipping). Ada dua macam flipping horizontal
(pencerminan terhadap sumbu Y) dari citra A menjadi citra B dengan
rumus B[x][y] =A[N-x][y] dan flipping vertical (pencerminan terhadap
sumbu X) dari citra A menjadi citra B dengan rumus: B[x][y] =A[x][M
y].
Pencerminan pada titik asal (cartesian) dari citra A menjadi citra B
diberikan oleh:
B[x][y] =A[N - x][M - y].
Tunjukkan perbedaan citra asal dengan citra flipping horizontal, flipping
vertical dan flipping pada N=25 M=50.
Petunjuk: Soal 1 dan 4 wajib dikerjakan, Soal 2 dan 3 praktikan bisa
memilih salah satu soal, jadi praktikan wajib mengerjakan 3 soal saat praktikum
dilaksanakan.

4.1.2 Jawab
1. Pengolahan Citra Warn
a=imread('leno.jpg');
red=a(:,:,1);
green=a(:,:,2);
blue=a(:,:,3);
[p l d]=size(a);
kosong=zeros(p,l);
merah_lena = cat(3,a(:,:,1),kosong,kosong);
hijau_lena = cat(3,kosong,a(:,:,2),kosong);
biru_lena = cat(3,kosong,kosong,a(:,:,3));
kuning_lena = cat(3,a(:,:,1),a(:,:,2),kosong);
ungu_lena = cat(3,a(:,:,1),kosong,a(:,:,3));

cyan_lena = cat(3,kosong,a(:,:,2),a(:,:,3));
gray =rgb2gray(a);
imshow([merah_lena
hijau_lena
biru_lena;
kuning_lena ungu_lena cyan_lena])
imshow(gray)

2.-Penambahan
a=imread('cameraman.tif');
b=imread('cameraman.tif');
[h w x]=size(a);
for baris=1:h
for kolom=1:w
newimg(baris,kolom)=a(baris,kolom)+b(baris,kolo
m);
if newimg(baris,kolom)>255
newimg(baris,kolom)=255;
end
end
end
imshow(newimg)

Hasil Penambahan

-Pengurangan
a=imread('cameraman.tif');
b=imread('cameraman.tif');
[h w x]=size(a);
for baris=1:h
for kolom=1:w
newimg(baris,kolom)=a(baris,kolom)b(baris,kolom);
if newimg(baris,kolom)<0
newimg(baris,kolom)=0;
end
end
end
imshow(newimg)
Hasil Pengurangan

-Pengalian
a=imread('cameraman.tif');
b=imread('cameraman.tif');
[h w x]=size(a);
for baris=1:h
for kolom=1:w
newimg(baris,kolom)=a(baris,kolom)*b(baris,kolom);
end
end
imshow(newimg)

Hasil Pengalian

-Pembagian
a=imread('cameraman.tif');
b=imread('cameraman.tif');
[h w x]=size(a);
for baris=1:h
for kolom=1:w
newimg(baris,kolom)=a(baris,kolom)/b(baris,kolom);
end
end
imshow(newimg)

Hasil pembagian

3.Kombinasi dua buah citra dengan logika Boolean


a=fix(rand(5,3)*255);
b=fix(rand(5,3)*255);
[p l]=size(a);
thres=100;
for i = 1:p
for j=1:l
if (a(i,j)>thres)
a(i,j)=1;
else
a(i,j)=0;
end
if (b(i,j)>thres)
b(i,j)=1;
else
b(i,j)=0;
end
end
end
c=a&b;
d=a|b;

Hasil Kombinasi

4.Operasi geometri
-Rotasi
a=imread('cameraman.tif');
[p l d]=size(a);
for i=1:p
for j=1:l
for k=1:d
new(j,p+1-i,k)=a(i,j,k);
end
end
end
imshow(a)
imshow(new)

-Translasi
a=imread('cameraman.tif');
[p l d]=size(a);
geserx=25;
gesery=50;
for i=1:p
for j=1:l
for k=1:d
new(i+geserx,j+gesery,k)=a(i,j,k);
end
end
end
imshow(new)

Hasil Translasi

-Scaling
a=imread('cameraman.tif');
[p l d]=size(a);
geserx=25;
gesery=50;
for i=1:p
for j=1:l
for k=1:d
new(2*i,2*j,k)=a(i,j,k);end

end
end
imshow(a)
imshow(new)
-Hasil Scaling

- Flipping
a=imread('cameraman.tif');
[p l d]=size(a);
geserx=25;
gesery=50;
for i=1:p
for j=1:l
for k=1:d
index=(l+1)-j;
new(i,index,k)=a(i,j,k);
end
end
imshow(a)
imshow(new)

-Hasil Flipping

-Vertical
a=imread('cameraman.tif');
[p l d]=size(a);
for i = 1 : p
for j = 1 : l
for k = 1 : d
index=(p+1)-i;
end
end
end
imshow(a)
imshow(new)

Hasil Vertical

new(index,j,k)=a(i,j,k);

BAB V
PENUTUP
5.1. Kesimpulan
Tidak semua citra yang diperoleh menggunakan kamera atau device lain
menghasilkan citra berkualitas yang disebabkan oleh faktor pencahayaan, kondisi
obyek maupun kamera yang digunakan. Oleh karena itu, diperlukan beberapa
metode pengolahan citra untuk memperbaiki kualitas tersebut.
Operasi titik: Penambahan, pengurangan, perkalian dan pembagian
intensitas citra, Penambahan, pengurangan, dan perkalian dua buah citra,
Negatif citra, Histogram dan Ekualisasi Histogram, Operasi Boolean dua buah
citra (and, or, not)
Operasi geometri: Translasi, Rotasi, Penskalaan (zoom in dan zoom out),
Pencerminan (flipping)
5.2. Saran