Anda di halaman 1dari 17

LAPORAN PRAKTIKUM

PENGOLAHAN CITRA DIGITAL


MANIPULASI GAMBAR/CITRA DIGITAL

Oleh :

Nama : Isnani
NIM : 1957301025
Kelas : TI-3C
Dosen Pembimbing : Musta’inul Abdi, SST., M.Kom.

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNOLOGI INFORMASI DAN KOMPUTER
TAHUN 2021

1
LEMBAR PENGESAHAN

No. Praktikum : 02/PCD/3C/TI/2021

Judul : Manipulasi Gambar/Citra Digital

Nama : Isnani

NIM / Kelas : 19573010725/ TI-3C

Jurusan : Teknologi Informasi Dan Komputer

Prodi : Teknik Informatika

Tanggal praktikum : 24 September 2021

Tanggal penyerahan : 1 Oktober 2021

Nilai :

Buketrata, 1 Oktober 2021


Dosen Pembimbing,

Musta’inul Abdi, SST., M.Kom.


NIP. 19911030 20190310 1 5

i
DAFTAR ISI

LEMBAR PENGESAHAN ..................................................................................... i


DAFTAR ISI ........................................................................................................... ii
DAFTAR GAMBAR ............................................................................................. iii
BAB I ...................................................................................................................... 1
1.1 Tujuan ....................................................................................................... 1
1.2 Dasar Teori ............................................................................................... 1
1.3 Alat dan Bahan ......................................................................................... 3
BAB II ..................................................................................................................... 4
2.1 Praktikum .............................................................................................. 4
BAB III ................................................................................................................... 7
BAB IV ................................................................................................................. 12
DAFTAR PUSTAKA ........................................................................................... 13

ii
DAFTAR GAMBAR

Gambar 1 matrix 2D................................................................................................ 1


Gambar 2RGB......................................................................................................... 2
Gambar 3 Greyscale ................................................................................................ 2
Gambar 4 Threshold/Black and White .................................................................... 3
Gambar 5 Layer Red, Layer Green, Layer Blue ..................................................... 3
Gambar 6 Invers ...................................................................................................... 3
Gambar 7 Implementasi .......................................................................................... 4
Gambar 8 Black and White ..................................................................................... 5
Gambar 9 Layer Red, Green, Blue .......................................................................... 6
Gambar 10 Invers .................................................................................................... 6
Gambar 11 Latihan 1 ............................................................................................... 7
Gambar 12 Latihan 2 ............................................................................................... 8
Gambar 13 Latihan 3 ............................................................................................... 9
Gambar 14 Latihan 4 ............................................................................................. 11

iii
BAB I
PENDAHULUAN

1.1 Tujuan
1. Mampu memahami konsep dasar representasi citra digital
2. Mampu memanipulasi citra digital

1.2 Dasar Teori


1. Citra sebagai matrik 2D
Citra/gambar secara konsep dapat dinyatakan dalam bentuk 2D atau array 2D,
dimana setiap pixelnya pada posisi (x,y) dinyatakan dalam P(x,y). Setiap pixel data
gambar mempunyai nilai sesuai dengan format gambar yang digunakan:

Gambar 1 matrix 2D

1. Pada gambar berwarna, setiap titik mempunyai nilai 24bit RGB, dimana
masing-masing komponen warna Red, Green, dan Blue mempunyai nilai 8bit,
atau dengan kata lain setiap komponen warna memiliki nilai 0 s/d 255. Secara
default warna R = 255,0,0 G = 0,255,0 B = 0,0,255. Berikut beberapa kombinasi
dari ketiga warna tersebut dan gambar yang RGB atau berwarna

1
Gambar 2RGB

2. Pada gambar grayscale atau derajat keabuan, setiap titik mempunyai nilai 8bit,
atau 0 s/d 255. Citra RGB dapat dikonversi menjadi citra grayscale sehingga
dihasilkan hanya satu kanal warna. Persamaan yang umumnya digunakan untuk
mengkonversi citra RGB truecolor 24-bit menjadi citra grayscale 8-bit adalah
Grayscale = 0.2989*R + 0.5870*G + 0.1140*B
Setiap pixel mempunyai nilai red(r), green(g), dan blue (b) dengan nilai masing-
masing 0-255. Setiap pixel mempunyai nilai derajat keabuan x dengan nilai 0-
255

Gambar 3 Greyscale

3. Threshold/Black and White. Pada gambar hitam putih (BW), setiap titik
mempunyai nilai 0 atau 1. Jenis citra yang ketiga adalah citra biner. Citra biner
adalah citra yang pixelnya memiliki kedalaman bit sebesar 1bit sehingga hanya
memiliki dua nilai intensitas warna yaitu 0 (hitam) dan 1 (putih). Citra grayscale
dapat dikonversi menjadi citra biner melalui proses thresholding. Dalam proses
thresholding, dibutuhkan suatu nilai threshold sebagai nilai pembatas konversi.
Nilai intensitas piksel yang lebih besar atau sama dengan nilai threshold akan
dikonversi menjadi 1. Sedangkan nilai intensitas piksel yang kurang dari nilai
threshold akan dikonversi menjadi 0. Misalnya nilai threshold yang digunakan
adalah 128, maka piksel yang mempunyai intensitas kurang dari 128 akan
diubah menjadi 0 (hitam) dan yang lebih dari atau sama dengan 128 akan diubah
menjadi 1 (putih).

2
Setiap pixel mempunyai nilai derajat keabuan x dengan nilai 0-255. Setiap pixel
mempunyai nilai warna Xbw dengan nilai 0 dan 1.

Gambar 4 Threshold/Black and White

4. Layer Red, Layer Green, Layer Blue adalah menampilkan gambar dengan
domniasi warna Merah, Green, atau Blue saja. Pada akhirnya hasil yang
ditampilkan hanya salah satu warna yang dominan tersebut. Namun, jika
digabungkan, maka terjadi gambar RGB yang utuh seperti sediakala.

Gambar 5 Layer Red, Layer Green, Layer Blue

5. Invers adalah manipulasi gambar dengan menampilkan warna gambar


berlawanan dengan warna asli. Hasil gambar terlihat seperti negative film
pada kamera analog.

Gambar 6 Invers

1.3 Alat dan Bahan


1. Laptop
2. MATLAB

3
BAB II
IMPLEMENTASI
2.1 Praktikum
Untuk menampilkan gambar tersebut perlu dibuat dalam bentuk GUI supaya
mempermudah pengolahan gambar tersebut. Pertama kita buat GUI seperti gambar
berikut.
a. Grayscale
Code:
image1 = handles.data1;
gray = rgb2gray(image1);
axes(handles.axes2);
imshow(gray);
handles.data2 = gray;
guidata(hObject,handles);
Hasil:

Gambar 7 Implementasi

b. Black and White


Code:
image1 = handles.data1;
bw = im2bw(image1);
axes(handles.axes2);
imshow(bw);
handles.data2 = bw;
guidata(hObject,handles);
Hasil:

4
Gambar 8 Black and White

c. Layer Red, Green, Blue


Code:
image1 = handles.data1;
allBlack = zeros(size(image1, 1), size(image1, 2));
%red
red = image1(:,:,1);
ired = cat(3, red, allBlack, allBlack);
%green
green = image1(:,:,1);
igreen = cat(3, allBlack, green, allBlack);
%blue
blue = image1(:,:,1);
iblue = cat(3, allBlack, allBlack, blue);

%mix
mix = cat (3,255-red,120-green,20-allBlack);

axes(handles.axes2);
imshow(iblue);
handles.data2 = iblue;
guidata(hObject,handles);
Hasil:

5
Gambar 9 Layer Red, Green, Blue

d. Invers
Code:
image1 = handles.data1;
inverse=imcomplement(image1);
handles.data2 = inverse;
axes(handles.axes2);
imshow(inverse);
handles.data2 = inverse;
guidata(hObject,handles);

Hasil:

Gambar 10 Invers

6
BAB III
LATIHAN

3.1 Coba dengan menampilkan 2 gambar yang berbeda sekaligus pada MATLAB dengan
menggunakan GUI
Jawab:

Gambar 11 Latihan 1

Analisa:
Membuat 2 push button pada figure, kemudian letakkan setiap puss button pada
axes 1 dan axes2. Berilah nama push button yang pertama atau pada axes 1 dengan
nama open, dan pada axes2 dengan nama proses. Caranya dengan klik dua kali pada
setiap push button tersebut kemudian pilih string untuk merubah nama push button,
sehingga hasilnya seperti pada gambar 11 latihan 1
Klik kanan pada button kemudian pilih callback dan tulis kode berikut:
[filename, pathname] = uigetfile ( ...
{'*.bmp;*.jpg;*.tif;*.png', 'Files of Type Image(*.bmp, *.jpg,
*.tif, *.png)';},...
'Open Image');

if ~isequal(filename,0)
handles.data1 = imread(fullfile(pathname, filename));
guidata(hObject,handles);
axes(handles.axes1);
imshow(handles.data1);
else
return;
end

Keterangan: Open=guidata(gcbo) berarti memuka halaman GUI. [namafile,direktori]


=uigetfile({‘*.jpg;*.bmp;*.tif},’OpenImage’) yaitu ekstensi file yang bisa digunakan berupa
ekstensi .jpg, .bmp, .tif.. I=imread(namafile) menyimpan file pada variable I dan variable inilah
yang nantinya akan di panggil ketika menampilkan gamar.
set(open.figure1,’CurrentAxes’,open.axes1) membuka figure 1 dan juga axes1.

7
set(imagesc(1)) yaitu membuka image atau gambar . colormap(’gray’) yaitu warna dari
tampilan jendelanya abu-abu. set(open.axes1,’Userdata’,I) yang berarti membuka axes1
dengan gambar yang sudah disimpan pada variable I. Kemudian buka foto yang akan di proses
dengan klik dua kali ikon open sehingga terlihat seperti pada Gambar

3.2 Cari perbedaan antara Threshold yang sudah dilakukan dengan Threshold Otsu dan apa
kegunaan utama dari Threshold Otsu. Sertakan kodingnya.
Jawab :
Thresholding merupakan teknik pemrosesan citra yang dapat mengubah citra ke derajat
keabuan yang lebih rendah menggunakan satu atau lebih ambang batas. Ambang batas
membagi intensitas piksel pada citra menjadi kelas-kelas terpisah, kemudian semua piksel
dengan kelas yang sama akan diubah menjadi warna yang sama. Jika hanya ada satu ambang
batas, maka intensitas piksel pada citra hanya akan terbagi menjadi dua kelas dan citra yang
dihasilkan dari thresholding tersebut adalah citra biner.
Metode otsu merupakan metode untuk menentukan titik ambang batas optimal untuk
melakukan thresholding. Hal ini dilakukan dengan meminimalkan variansi intrakelas, atau
sama saja dengan memaksimalkan variansi antarkelas dari kelas-kelas yang dipisahkan dengan
threshold. Untuk melakukannya, algoritma ini menghitung variansi antarkelas untuk setiap
nilai threshold yang mungkin.
Threshold Threshold Otsu

Gambar 12 Latihan 2

Code:
Threshold Threshold Otsu
image1 = handles.data1; image1 = handles.data1;
bw = im2bw(image1); level = graythresh(image1);
axes(handles.axes2); bw = im2bw(image1,level);
imshow(bw); axes(handles.axes2);
handles.data2 = bw; imshow(bw);
guidata(hObject,handles); handles.data2 = bw;
title('Threshold'); guidata(hObject,handles);
title(‘Threshold Otsu’);
Analisis:
Untuk perbandingan secara kualitatif, dapat dilihat dari citra hasil eksperimen
thresholding menggunakan perataan histogram memberikan hasil yang lebih

8
menyimpan detail citra, sementara hasil thresholding dengan metode otsu agak terlalu
terang.

3.3 Memanipulasi gambar dengan warna Cyan, Sephia, Hot, Cool, dan False (warna dari
gambar berbeda/berlawanan dengan warna aslinya)
Jawab:

Gambar 13 Latihan 3

Code:
Cyan
image1 = handles.data1;
allBlack = zeros(size(image1,1),size(image1,2));

cyan = image1(:,:,1);
icyan = cat(3,allBlack,cyan,cyan);
axes(handles.axes2);
imshow(icyan);
handles.data2 = cyan;
title('Cyan');
guidata(hObject,handles);

Sepia
d = handles.data1;
dR = d(:,:,1);
dG = d(:,:,2);
dB = d(:,:,3);

r = .393*dR + .769*dG + .189*dB;


g = .349*dR + .686*dG + .168*dB;
b = .272*dR + .534*dG + .131*dB;

dSephia = cat(3,r,g,b);
axes(handles.axes2);
imshow(dSephia);
title('Sephia');
guidata(hObject,handles);

HOT
image1 = handles.data1;

9
[Y] = rgb2ind(image1,28);
axes(handles.axes2);
imagesc(Y);
colormap(hot)
title('HOT');
axis off

COOL

image1 = handles.data1;
[Y] = rgb2ind(image1,28);
axes(handles.axes2);
imagesc(Y);
colormap(cool);
title('COOL');
axis off

3.4 Jelaskan apa itu warna CMYK, HSL, dan HIS. Berikan contohnya gambar serta koding
untuk matlab!
Jawab:
CMYK adalah singkatan dari Cyan-Magenta-Yellow-blacK dan biasanya juga sering
disebut sebagai warna proses atau empat warna. CMYK adalah sebuah model warna berbasis
pengurangan sebagian gelombang cahaya (substractive color model) dan yang umum
dipergunakan dalam pencetakan berwarna. Jadi untuk mereproduksi gambar sehingga dapat
dicapai hasil yang (relative) sempurna dibutuhkan sedikitnya 4 Tinta yaitu: Cyan, Magenta,
Yellow dan Black. Keempat tinta tersebut disebut Tinta / Warna Proses. Tinta Proses adalah
tinta yang dipergunakan untuk mereproduksi warna dengan proses teknik cetak tertentu, seperti
offset lithography, rotogravure, letterpress atau sablon. Berbeda dengan Tinta yang hanya
digunakan satu lapisan (single layer), karena tinta yang digunakan dapat ditumpuk-tumpuk,
maka sifat tinta proses harus memenuhi standard tertentu, seperti spesifikasi warna dan nilai
Opacity/Transparency.

Contoh Koding:
CMYK
image1 = handles.data1;
allBlack = zeros(size(image1,1),size(image1,2));
cyan = image1(:,:,1);
icyan = cat(3,allBlack,cyan,cyan);
axes(handles.axes2);
imshow(icyan);
handles.data2 = cyan;
title('Cyan');
guidata(hObject,handles);

image1 = handles.data1;
allBlack = zeros(size(image1,1),size(image1,2));
magenta = image1(:,:,1);
imagenta = cat(3,magenta,allBlack,magenta);
axes(handles.axes2);
imshow(imagenta);
handles.data2 = imagenta;

10
title('Magenta');
guidata(hObject,handles);

image1 = handles.data1;
allBlack = zeros(size(image1,1),size(image1,2));

yellow = image1(:,:,1);
iyellow = cat(3,yellow,yellow,allBlack);
axes(handles.axes2);
imshow(iyellow);
handles.data2 = iyellow;
title('Yellow');
guidata(hObject,handles);

image1 = handles.data1;
allBlack = zeros(size(image1,1),size(image1,2));

iblack = cat(3,allBlack,allBlack,allBlack);
axes(handles.axes2);
imshow(iblack);
handles.data2 = iblack;
title('Black')
guidata(hObject,handles);

HSL
image1 = handles.data1;
hsl = rgb2hsv(image1);
axes(handles.axes2);
imshow(hsl);
handles.data2 = hsl;
title('HSL')
guidata(hObject,handles);

HIS
image1 = handles.data1;
hsi = rgb2hsi(image1);
axes(handles.axes2);
imshow(hsi);
handles.data2 = hsi;
title('HSI')
guidata(hObject,handles);
Hasil :

Gambar 14 Latihan 4

11
BAB IV
PENUTUP
4.1 Kesimpulan

Pada praktikum ini akan membahas mengenai pembuatan program Graphic User
Interface (GUI). Graphic User Interface adalah media tampilan grafis sebagai pengganti
perintah teks untuk berinteraksi antara user dengan program. Dengan menggunakan GUI
program akan jauh lebih menarik atau user friendly, selain itu tampilan program akan menjadi
lebih interaktif dan penggunaan program menjadi lebih efektif. Untuk keperluan membuat
program GUI, Matlab menyediakan komponen-komponen standart, seperti edit, text,
pushbutton, frame, checkbox dan lain-lain. Untuk menggunakan komponen-komponen
tersebut dengan benar.

12
DAFTAR PUSTAKA

[1] Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE
Trans. Sys. Man. Cyber. 9 (1): 62–66.
[2] P. E. Trahanias and A. N. Venetsanopoulos, "Color image enhancement through 3-D
histogram equalization," in Proc. 15th IAPR Int. Conf. Pattern Recognition, vol. 1, pp. 545–
548, Aug.-Sep. 1992.
[3] Rinaldi Munir, Slide Presentasi Bahan Kuliah Mata Kuliah Pengolahan Citra IF4073,
Teknik Informatika, Institut Teknologi Bandung, 2019.
[4] Santoso Tri Budi., 2009, Dasar-Dasar Operasi Matlab, Jakarta, Erlangga.
[5] http://id.wikipedia.org/wiki/MATLAB (Diakses pada taanggal 21 Februari
2014)

13

Anda mungkin juga menyukai