Anda di halaman 1dari 18

LAPORAN PRAKTIKUM

MATA KULIAH PENGOLAHAN CITRA


Semester Genap 2016/2017

Oleh Kelompok 6:
Triyana Fadila 4611415007
Ilham Alfin Musyafa 4611415032
Muhammad Salim Ridho 4611415029

Dosen Pengampu:
Endang Sugiharti, S.Si., M.Kom.

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI SEMARANG
2017
1. Peningkatan Kecerahan dan Kontras
2. Pengilangan Derau
3. Pencarian Bentuk Objek
4. Operasi Piksel dan Histogram
- Operasi Piksel
- Meningkatkan kecerahan
- Meregangkan Kontras
- Kombinasi Kecerahan dan
- Membalik Citra
- Pemotongan Aras Keabuan
5. Operasi Ketetanggaan
- Filter Batas
- Filter Pererataan
- Filter Median
- Filter Lolos Rendah
- Filter Lolos Tinggi
6. Operasi Geometrik
- Menggeser Citra
- Memutar Citra
- Interpolasi Piksel
- Memperbesar Citra
- Memperkecil Citra
- Pencerminan Citra
- Efek Ripple
- Efek Twirl

7. Rotasi
BAB 1

A. Peningkatan Kecerahan dan Kontras


1. Peningkatan Kecerahan (Brightness)
Untuk meningkatkan kecerahan gambar dapat dilakukan dengan menuliskan baris perintah
berikut:

>> Img = imread(E:\cat.jpg);


>> C = Img + 60;
>> imshow(C);

a. Gambar awal b. Setelah peningkatan kecerahan


BAB II
PENGENALAN DASAR CITRA

A. Membaca Citra
Bentuk pemanggilan untuk membaca citra yang tersimpan dalam bentuk file adalah
Img = imread(nama_file_citra)
format-format gambar yang bisa dibaca oleh imread berupa TIFF, JPEG, BMP, GIF, XWD,
dan PNG.
B. Mengonversi Jenis Citra
Bagaimana cara mengubah citra berwarna ke dalam citra berskala keabuan? Secara umum
citra berwarna dapat dikonversikan ke citra berskala keabuan melalui rumus :
I=a x R+b x G+c x B, a+b+c=1 (2.1)
dengan R menyatakan nilai komponen merah, G menyatakan nilai komponen hijau, dan B
menyatakan nilai komponen biru. Cara melakukan konversi dari citra berwarna ke citra biner
dilakukan dengan script sebagai berikut :
>> Img = imread('E:\cat.jpg');
>> Abu = uint8(0.2989 * double(Img(:,:,1)) + ...
0.5870*double(Img(:,:,2)) + ...
0.1141 * double(Img(:,:,3)));
>> imshow(Abu;

Hasil konversi gambar awal kedalam citra berskala keabuan.


C. Mengonversikan citra berskala keabuan ke citra biner
Cara melakukan konversi dari citra berskala keabuan ke dalam citra biner :
Img = imread('E:\cat keabuan.jpg');
[tinggi, lebar] = size(Img);
ambang = 160;
biner = zeros(tinggi, lebar);
for baris=1 : tinggi
for kolom=1 : lebar
if Img(baris, kolom) >= ambang
Biner(baris, kolom) = 0;
else
Biner(baris, kolom) = 1;
end
end
end
imshow(Biner);
Berikut ini adalah hasil konversi citra berskala keabuan ke
dalam citra biner

D. Menyimpan Citra Negatif


Dapat dilakukan dengan script dibawa ini
>> Img = imread('E:\cat');
>> a = 255 Img;
>> imwrite(a, cat.jpg);
Hasil Penyimpanan citra negative file cat.jpg pada folder PC.
BAB III
OPERASI PIKSEL DAN HISTOGRAM
A. Operasi Piksel
Operasi piksel adalah operasi pengolahan citra yang memetakan hubungan setiap
piksel yang bergantung pada piksel itu sendiri. Jika f(y, x) menyatakan nilai sebuah piksel
pada citra f dan g(y, x) menyatakan piksel hasil pengolahan dari f(y, x), hubungannya dapat
dinyatakan dengan
g(y,x)= T(f(y,x))

B. Membuat 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. Berikut ini menunjukkan cara
membuat histogram citra penanaman.jpg :
function histogram (img)
[jumlahbaris,jumlahkolom]=size(img);
img=double(img);
histogram=zeros(256,1);
for baris=1:jumlahbaris
for kolom=1:jumlahkolom
histogram(img(baris,kolom)+1)=...
histogram(img(baris,kolom)+1)+1;
end
end
horizontal=(0:255)';
bar(horizontal,histogram);
end
img=imread('E:\penanaman.jpg');
histogram(img);
Dengan cara tersebut dihasilkan histogram dari gambar penanaman.jpg berikut :

Gambar asli.
Histogram citra penanaman.jpg

C. Meningkatkan Kecerahan
Untuk mencerahkan kecerahan dapat dilakukan dengan cara pada BAB I diatas.

D. Meregangkan Kontras
Peregangan kontras dilakukan agar distribusi intensitas piksel berubah yang dapat
dilakukan dengan menggunakan rumus :
(, ) = (, )

Untuk meregangkan kontras dengan cara seperti berikut:


>> Img = imread('E:\sepeda.jpg');
>> K = 2.5 * Img;

E. Kombinasi Kecerahan dan Kontras


F. Membalik Citra
G. Pemetaan Nonlinear
H. Pemotongan Aras Keabuan
I. Ekualisasi Histogram
BAB IV
OPERASI KETETANGGAAN
A. Filter Batas
Filter batas dapat dilakukan dengan menggunakan script dibawah ini
F = imread('E:\pevita.jpg');
Ukuran = size(F);
tinggi = Ukuran(1);
lebar = Ukuran(2);
G = F;
for baris=5 : 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)]);
maksPiksel = 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)]);

if F(baris, kolom) < minPiksel


G(baris, kolom) = minPiksel;
else
if F(baris, kolom) > maksPiksel
G(baris, kolom) = maksPiksel;
else
G(baris, kolom) = F(baris, kolom);
end
end
end
end
figure(1);

Perubahan citra pevita.jpg dapat dilihat seperti dibawah ini:

a. Gambar awal c. gambar hasil filter batas


B. Filter Pererataan
Berikut adalah script program untuk melakukan operasi dengan filter pemerataan
F = imread(E:\pevita');
[tinggi, lebar] = size(F);

F2 = double(F);
for baris=2 : tinggi-1
for kolom=2 : lebar-1
jum = F2(baris-1, kolom-1)+ ...
F2(baris-1, kolom) + ...
F2(baris-1, kolom-1) + ...
F2(baris, kolom-1) + ...
F2(baris, kolom) + ...
F2(baris, kolom+1) + ...
F2(baris+1, kolom-1) + ...
F2(baris+1, kolom) + ...
F2(baris+1, kolom+1);

G(baris, kolom) = uint8(1/9 * jum);


end
end
figure(1); imshow(G);
clear;

a. Gambar Asli
b. Citra hasil filter pemerataan

Citra hasil perataan terlihat agak memudar dan resolusi lebih rendah.

C. Filter Median
Filter median dapat dilakukan dengan menggunakan script program berikut:
F = imread('E:\pevita.jpg');
[tinggi, lebar] = size(F);
for baris=4 : tinggi-2
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)];
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
end
G(baris, kolom) = data(5);
end
end
figure(2); imshow(G);
clear;

Berikut perubahan yang dapat dilihat dari hasil operasi filter median,

a. Gambar asli b. Citra hasil Filter Median

Dari citra hasil operasi filter median terlihat ada sedikit


garis dibagian atas citra.

D. Konvolusi
Dapat dilakukan dengan menggunakan script program
berikut:
BAB 5
OPERASI GEOMETRIK

A. Pemutaran citra dengan pusat

>> F = imread('F:\7246.jpg');

[tinggi, lebar] = size(F);

sudut = 10;

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;

end

end

end

G = uint8(G);

figure(1); imshow(G);
Gambar asli

Gambar Hasil Pemutaran Citra Terpusat

B. Pemutaran Citra Bileniar Intrapolation

>> F = imread('F:/tumbal.jpg');

[tinggi, lebar] = size(F);

sx = 270;

sy = -150;
F2 = double(F);

G = zeros(size(F2));

for y=1 : tinggi

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(1); imshow(G);

Gambar a. diatas apabila dilakukan operasi penggeseran citra maka hasilnya adalah berikut:
C. Pemutaran Citra Pemetaan Depan

F = imread('F:/tumbal.jpg');
[tinggi, lebar] = size(F);

sudut = 10;
rad = pi * sudut/180;
cosa = cos(rad);
sina = sin(rad);
F2 = double(F);
G=zeros(tinggi, lebar);
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(y2, x2) = F2(y, x);
end
end
end

G = uint8(G);
figure(1); imshow(G);

Gambar a. diatas apabila dilakukan operasi pemetaan depan maka hasilnya adalah berikut:

D. Pemutaran Citra dengan Bilinier Interpolation

F = imread('F:/tumbal.jpg');
[tinggi, lebar] = size(F);

sudut = 10;
rad = pi * sudut/180;
cosa = cos(rad);
sina = sin(rad);
F2 = double(F);
for y=1 : tinggi
for x=1 : lebar
x2 = x * cosa + y * sina;
y2 = y * cosa - x * sina;
if (x2>=1) && (x2<=lebar) && ...
(y2>=1) && (y2<=tinggi)

p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;

if (x2 == lebar) || (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;
end
end
end

G = uint8(G);
figure(1); imshow(G);

Gambar a. diatas apabila dilakukan operasi Bilinear Interpolation depan maka hasilnya adalah berikut: