SlideShare a Scribd company logo
1 of 26
Download to read offline
MODUL PRAKTIKUM
PENGOLAHAN CITRA DIGITAL
Disusun Oleh:
Ir. Abd. Rabi’ MKom.
LABORATOIUM INFORMATIKA DAN KOMPUTER
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS MERDEKA MALANG
2
PENDAHULUAN
Pengolahan Citra Digital merupakan disiplin ilmu yang berkembang pesat belakangan ini.
seiring pesatnya perkembangan komputer dan perangkat multimedia. Tujuan utama Pengolahan Citra
Digital adalah menyiapkan citra agar lebih mudah diinterpretasi baik oleh manusia, komputer, maupun
perangkat elektronik lainnya.
Salah satu contoh aplikasi pengolahan citra adalah pembacaan meteran listrik maupun meteran
air minum dengan ponsel android. Dalam hal ini akuisisi citra dilakukan dengan memotret angka-
angka pada meteran listrik. Citra yang diperoleh kemudian perlu diolah untuk memisahkan obyek-
obyek selain angka serta untuk memperbaiki kualitas angka-angka yang terkandung dalam citra.
Selanjutnya dengan algoritma tertentu, citra angka akan dicocokkan dengan pola angka yang telah
dikenali sehingga pembacaan meteran listrik dapat terjadi secara otomatis.
Secara logika, suatu komputer akan menyimpan citra dalam bentuk matriks dalam memori.
Karena itu Pengolahan Citra Digital terkait erat dengan operasi-operasi matriks. OCTAVE adalah
salah satu software komputer yang berorientasi pada operasi matriks. Karena alasan ini, maka dalam
praktikum Pengolahan Sinyal Digital digunakan software OCTAVE.
Buku panduan praktikum ini lebih menekankan kepada kemudahan dalam mempelajari
Pengolahan Citra Digital. Kerumitan dalam formulasi matematika maupun prosedural programming
diupayakan seminimal mungkin.
A. PENGENALAN SINGKAT OVTAVE
OCTAVE adalah perangkat lunak gratis yang dipakai untuk analisis numerik maupun
visualisasi data, sebagai salah satu alternatif dari perangkat lunak MATLAB. Keistimewaan
OCTAVE disamping karena gratis, adalah kompatibilitasnya dengan MATLAB serta tersedia dalam
berbagai sistem operasi. OCTAVE juga menyediakan fasilitas bahasa pemrograman teks maupun
visual untuk penghitungan teknik yang terintegrasi dengan komputasi, visualisasi dan lingkungan
pemrograman,
1. Memulai Menjalankan OCTAVE
OCTAVE dijalankan pada sistem operasi Windows, secara default akan menampakan
tampilan seperti pada gambar 1. seperti berikut:
3
Gambar 1. Tampilan Pertama OCTAVE Dijalankan
Pada gambar 1. di atas, terdapat 2 buah windows yakni window utama dan command window.
Di bagian window utama terdapat tampilan direktori yang aktif (C:Usershp). Direktori aktif ini dapat
dipindahkan sesuai kebutuhan, namun disarankan untuk segera mengganti menjadi direktoti khusus
intuk praktikum pngolahan citra (misalnya D:AJARPRAKTEKCitra). Bagian command window
adalah tempat dimana hampir semua aktifitas dalam OCTAVE dapat dilakukan. Tanda bahwa
Command Window, siap digunakan adalah cursor >> berkedip.
2. Menggunakan OCTAVE Sebagai Kalkulator
Contoh penggunaan OCTAVE yang paling sederhana adalah kalkulator interaktif, langsung
diketik dalam kotak command window, pada cursor >>
>> 2+3
ans =
5
>> x=12+7*3
x =
33
>> x/11
ans =
3
4
3. Keluar Dari OCTAVE
Keluar dari OCTAVE dapat dilakukan dengan dua cara, yakni mengetik quit pada command
windows atau dengan meng-click icon silang (x) pada bagian pojok kanan dari tampilan OCTAVE.
B. VARIABEL DALAM OCTAVE
Variabel dalam OCTAVE dibentuk oleh perintah assignment. Sintaks perintah assignment
adalah:
>> nama variabel = nilai (atau suatu ekspressi)
Suatu ekspressi kombinasi dari nilai, operasi matematika, variabel-variabel, serta function call. Berikut
ini beberapa contoh erintah assignment dalam OCTAVE:
>> ayah=1
ayah =
1
>> ibu=1
ibu =
1
>> anak=[ayah ibu ayah+ibu ayah-ibu ayah*ibu ayah/ibu]
anak =
1 1 2 0 1 1
>> anak=anak+10
anak =
11 11 12 10 11 11
Secara default, type dari variabel adalah double (bilangan real presisi ganda). OCTAVE juga
mengenal type-type lainnya, seperti pada contoh berikut:
>> benar=true
benar =
1
>> salah=~benar
salah =
0
>> dia='Jantung Hatiku'
dia =
Jantung Hatiku
5
PRAKTIKUM 01
A K U IS IS I C IT R A
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk :
1. Mengambil citra dari berbagai media yang terhubung dengan komputer.
2. Menyatakan citra sebagai matriks yang elemen-elemennya dapat diketahui
3. Menampilkan citra sebagai matriks, serta menampilkan matriks sebagai citra.
1. Mengambil Dan Menampilkan Citra Dari File Gambar (*.jpg , *.bmp, *.png, *.tif)
Ada 2 function yang digunakan dalam pengambilan citra dari file gambar, yakni
imread() dan uigetflle(). Function imread()gunanya untuk membaca file gambar
sedangkan function uigetflle()gunanya untuk mendapatkan nama file serta nama folder
melalui tampilan GUI.
Percobaan 1:
>> A=imread('ani pina makassar.jpg');
>> format={'*.jpg';'*.png';'*.tif';'*.bmp'};
>> [pail polder]=uigetfile(format)
pail = aTummat.jpg
polder = D:AJARCitra
>> B=imread([polder pail]);
Pada percobaan 1 tadi, telah dilakukan pembacaan citra yang berasal dari file gambar
ani pina.jpg dan aTummat.jpg. Citra yang berasal dari file ani pina.jpg disimpan
dalam variabel A sedangakan citra yang berasal dari file aTummat.jpg disimpan dalam
6
variabel B. Cara pengambilan citra ke dalam variabel B ini dilakukan apabila letak file-nya berada
dalam folder “antah-berantah”.
Variabel A dan B hasil pembacaan citra dapat dilihat type dan ukurannya dengan
meggunakan perintah whos, seperti berikut ini:
>> whos A B
Variables visible from the current scope:
variables in scope: top scope
Attr Name Size Bytes Class
==== ==== ==== ===== =====
A 360x640x3 691200 uint8
B 525x700x3 1102500 uint8
Total is 1793700 elements using 1793700 bytes
Variabel A dan B merupakan matriks 3 dimensi, yang berturut-turut menunjukkan ukuran
baris, kolom, dan kanal warna RGB. Isi variabel A maupun B dapat dilihat baik sebagai angka
(elemen matriks) maupun sebagai citra, dengan perintah berikut:
Percobaan 2:
>> A(1:9,1:7,1) % baris 1 s.d. 9, kolom 1 s.d. 7, kanal warna 1
ans =
130 131 132 135 138 138 139
130 131 133 135 139 139 140
129 131 133 137 141 141 142
129 131 134 139 143 144 145
128 131 135 141 146 147 148
127 131 136 142 148 149 150
127 130 137 144 150 151 152
126 130 137 145 151 153 154
127 131 138 146 153 155 156
>> imshow(A) % tampilkan citra pada matriks A
7
2. Mengambil Menampilkan Citra Dari File Video (*.avi , *.mp4, *.mpg, *.wmv)
Untuk mengambil citra dari file video digunakan function VideoReader serta function
readFrame seperti pada contoh berikut ini:
Percobaan 3:
>> pkg load video
>> anu=VideoReader('Per_4_an.mp4')
anu =
class VideoReader:
Duration [s] = 900.96
BitsPerPixel = 24
Bitrate = 346642
FrameRate [fps] = 30.00
Height [px] = 360
Width [px] = 640
Name = Per_4_an.mp4
Path =
NumberOfFrames = 27026
FrameNumber = 0
VideoFormat = RGB24
VideoCodec = h264
AspectRatio = [1 1]
>> C=readFrame(anu);
>> imagesc(C); axis equal
8
3. Tugas
a. Tuliskan perintah OCTAVE untuk mengambil citra dari file gambar atummat.jpg yang
hasilnya disimpan ke dalam matriks C.
b. Tampilkan nilai-nilai dari matriks C, baris 361 s.d. 375, kolom 300 s.d. 309, semua kanal
warna.
c. Tampilkan citra pada matriks C, baris 361 s.d. 461, kolom 300 s.d. 441, semua kanal
warna.
d. Tuliskan perintah MATLAB untuk mengambil citra dari file video rhinos.avi, frame ke k
yang hasilnya disimpan ke dalam matriks F. Dalam hal ini k adalah nilai dari 2 digit terakhir
dari NRP (NIM) anda masing-masing ditambah 19.
e. Tampilkan citra pada matriks F.
9
PRAKTIKUM 02
KONVERSI CITRA
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk :
1. Mengenal dan memahami citra bewarna RGB, citra graysclae, maupun citra biner.
2. Dapat mengkonversi citra bewarna RGB menjadi citra graysclae, maupun citra biner.
3. Dapat menyimpan matriks citra menjadi file *.jpg, *.png, *.tif, maupun *.bmp
1. Citra Bewarna RGB Menjadi Citra Grayscale
Suatu citra bewarna RGB dinyatakan oleh MATLAB sebagai matriks 3 dimensi. Dimensi
pertama adalah baris, dimensi kedua adalah kolom, dan dimensi ketiga adalah kanal warna Red
Green dan Blue. Misalkan citra bewarna RGB disimpan dalam matriks Am,n,3 = (aijk). Dalam hal ini
m = 1, 2, … , jumlah baris; n = 1, 2, … , jumlah kolom; dan k = 1, 2, 3. Rumus umum untuk
mengkonversi citra bewarna RGB menjadi citra grayscale adalah:
G = (gij) = (aij1) + (aij2) + (aij3) (2.1)
dalam hal ini  +  + 

Percobaan 1:
>> A=imread('aTummat.jpg');
>> G=(1/3)*A(:,:,1)+(1/3)*A(:,:,2)+(1/3)*A(:,:,3);
>> G1=(5/10)*A(:,:,1)+(3/10)*A(:,:,2)+(2/10)*A(:,:,3);
>> G2=0.45*A(:,:,1)+0.35*A(:,:,2)+0.2*A(:,:,3);
>> subplot(2,2,1);imshow(A);title('Citra RGB')
>> subplot(2,2,2);imshow(G)
>> title('GrayScale (alpha = beta = gamma = 1/3 )')
>> subplot(2,2,3);imshow(G1)
>> title('GrayScale (alpha = 0.5; beta = 0.3; gamma = 0.2 )')
>> subplot(2,2,4);imshow(G2)
>> title('GrayScale (alpha = 0.45; beta = 0.35; gamma = 0.2 )')
10
2. Citra Bewarna RGB Menjadi Citra Biner
Citra biner dinyatakan sebagai suatu matriks 2 dimensi yang elemen-elemennya
merupakan bilangan biner. Nilai true (atau 1) mewakili pixel bewarna putih, dan nilai false (atau
0) mewakili pixel bewarna hitam. Salah satu cara untuk mengkonversi Citra bewarna RGB
menjadi citra biner adalah dengan rumus berikut:
true atau 1, j ika (aij1) > (aij2) + (aij3) + 17;
B = (bij) = (2.2)
false, atau 0, selain itu.
Percobaan 2:
>> A=imread('aTummat.jpg');
>> B=A(:,:,1)>A(:,:,2)+A(:,:,3)+17;
>> subplot(1,2,1);imshow(A);title('Citra RGB')
>> subplot(1,2,2);imshow(B);title('Citra Biner')
3. Citra Grayscale Menjadi Citra Biner
Salah satu cara untuk mengkonversi ctra grayscale menjadi citra biner adalah dengan
rumus berikut:
true atau 1, jika (gij) > T;
B = (bij) = (2.3)
false, atau 0, selain itu.
Percobaan 3:
>> A=imread('rice.png');
>> B=A>median(A(:));
>> subplot(1,2,1);imshow(A);title('Citra it{Grayscale}')
>> subplot(1,2,2);imshow(B);title('Citra Biner')
11
4. Matriks Citra Menjadi File Gambar (*.jpg, *.png, *.tif, dan *.bmp)
Untuk menyimpan suatu matriks citra menjadi file gambar *.jpg, *.png, *.tif, dan lain-lain
digunakan function imwrite seperti berikut ini:
Percobaan 4:
>> A=imread('rice.png');
>> B=A>median(A(:));
>> imwrite(A,'berasku.jpg')
>> imwrite(B,'binerku.bmp')
5. Tugas
a. Cantumkan semua citra yang tampil pada semua hasil percobaan.
b. Tuliskan perintah OCTAVE untuk mengambil citra dari file video MenanamPaprika.mp4,
frame ke k yang hasilnya disimpan ke dalam matriks C.
c. Ubah (konversikan) citra pada matriks C pada tugas b. di atas, menjadi citra grayscale D
serta citra biner E.
d. Simpanlah citra pada matriks C, D dan E pada tugas b. dan c. di atas, menjadi file gambar
*.jpg.
12
PRAKTIKUM 03
OPERASI ALJABAR
DAN GEOMETRI CITRA
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk :
1. Mengenal dan mengerti operasi-operasi aljabar terhadap matriks citra.
2. Dapat melakukan operasi-operasi aljabar terhadap matriks citra.
3. Dapat melakukan operasi-operasi geometris citra.
1. Operasi Aljabar Terhadap Matriks Citra
Matlab menyimpan citra dalam memori (work space) sebagai suatu matriks. Sebagaimana
matriks dalam matematika, maka berlaku operasi-operasi aljabar terhadap matriks citra, seperti
penjumlahan/pengurangan, serta perkalian/pembagian.
Percobaan 1:
>> A=imread('atummat.jpg');
>> B=A+75;
>> C=A-75;
>> subplot(2,2,[1 2]); imshow(A); title('Citra A')
>> subplot(2,2,3); imshow(B); title('Citra (A + 75)')
>> subplot(2,2,4); imshow(C); title('Citra (A - 75)')
Percobaan 2:
>> anu=VideoReader('AMAZING RED BELL PEPPER __ HARVESTING PAPRIKA __ SOUTH KOREA.mp4')
anu =
class VideoReader:
Duration [s] = 106.12
BitsPerPixel = 24
Bitrate = 2256001
FrameRate [fps] = 30.00
Height [px] = 720
Width [px] = 1280
Name = AMAZING RED BELL PEPPER __ HARVESTING PAPRIKA __ SOUTH KOREA.mp4
Path =
NumberOfFrames = 3183
FrameNumber = 0
VideoFormat = RGB24
VideoCodec = h264
AspectRatio = [1 1]
>> A=AmbilFrameKe(anu,27);
>> B=AmbilFrameKe(anu,739);
>> subplot(2,2,1);imshow(A);title('Citra A')
>> subplot(2,2,2);imshow(B);title('Citra B')
>> subplot(2,2,3);imshow(A+B);title('Citra (A + B)')
>> subplot(2,2,4);imshow(0.5*A+0.5*B);title('Citra (0.5A + 0.5B)')
13
Percobaan 3:
>> A=imread('atummat.jpg');
>> subplot(2,2,[1 2]); imshow(A); title('Citra A')
>> subplot(2,2,3); imshow(2*A); title('Citra ( 2 A )')
>> subplot(2,2,4); imshow(A/2); title('Citra ( 0.5 A )')
2. Operasi Pencerminan
Terdapat 2 macam pencerminan, yakni pencerminan terhadap sumbu vertikal dan
pencerminan terhadap sumbu horizontal.
Percobaan 4:
>> A=imread('atummat.jpg');
>> B=A(:,end:-1:1,:);
>> C=A(end:-1:1,:,:);
>> D=A(end:-1:1,end:-1:1,:);
>> subplot(2,2,1);imshow(A);title('Citra A')
>> subplot(2,2,2);imshow(B);title('Cermin Citra A')
>> subplot(2,2,3);imshow(C);title('Cermin Citra A')
>> subplot(2,2,4);imshow(D);title('Cermin Citra A')
3. Operasi Pergeseran
Terdapat 4 macam pergeseran, yakni pergeseran ke arah kiri, ke arah kanan, ke arah
atas, dan ke arah bawah.
Percobaan 5:
>> A=imread('rice.png');
>> B=[uint8(zeros(size(A,1),50)) A(:,1:end-50)];
>> C=[A(:,51:end) uint8(zeros(size(A,1),50))];
>> D=[A(51:end,:); uint8(zeros(50,size(A,2))) ];
>> E=[uint8(zeros(50,size(A,2))); A(1:end-50,:) ];
>> subplot(2,3,[1 2]);imshow(A)
>> subplot(2,3,[1 4]);imshow(A)
>> subplot(2,3,[1 4]);imshow(A);title('Citra A')
>> subplot(2,3,2);imshow(B);title('Citra A ke kanan 50 pixel')
>> subplot(2,3,3);imshow(C);title('Citra A ke kiri 50 pixel')
>> subplot(2,3,5);imshow(D);title('Citra A ke atas 50 pixel')
>> subplot(2,3,6);imshow(E);title('Citra A ke bawah 50 pixel')
>> set(gcf,'MenuBar','none','Name','PRAKTIKUM 03 Percobaan: 5','NumberTitle','off')
14
4. Operasi Penskalaan
Adalah operasi memperbesar/memperkecil ukuran matriks citra. Secara umum pada
operasi memperbesar serta memperkecil, diilustrasikan dalam operasi matriks sederhana berikut:
Percobaan 6:
>> A=imread('ani pina makassar.jpg');
>> B=imresize(A,0.1);
>> C=imresize(A,[200 200]);
>> D=imresize(A,[200 250]);
>> subplot(2,2,1);imshow(A);title('Citra A')
>> subplot(2,2,2);imshow(B);title(['Citra A dikecilkan 1/10 kali'])
>> subplot(2,2,3);imshow(C);title(['Citra A dikecilkan (ukuran ',num2str(size(C)),')'])
>> subplot(2,2,4);imshow(D);title(['Citra A dikecilkan (ukuran ',num2str(size(D)),')'])
15
5. Tugas
a. Cantumkan semua citra yang tampil pada semua hasil percobaan.
b. Ulangi semua percobaan Percobaan 6, namun citra yang digunakan adalah gambar wajah
anda masing-masing.
16
PRAKTIKUM 04
PERBAIKAN KUALITAS CITRA
(DALAM RUANG SPASIAL)
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk :
1. Mengenal dan memahami perbaikan kualitas citra dalam ruang spasial.
2. Dapat melakukan berbagai operasi perbaikan kualitas citra berbasis titik pixel.
3.Dapat melakukan berbagai operasi perbaikan kualitas citra berbasis tetangga pixel.
1. Perbaikan Kualitas Citra Dengan Bantuan Histogram
Histogram citra adalah sebaran nilai-nilai matriks citra dalam bentuk visual (diagram
batang). Dari histogram citra dapat diketahui kecendrungan serta pola sebaran nilai yang
berkaitan dengan kualitas citra. Secara umum histogram yang cenderung ke kiri, maka
gambarnya cenderung gelap, sebaliknya ke kanan maka gambarnya cenderung terang.
Percobaan 1:
>> A=imread('rice.png');
>> b=min(A(:));
>> a=max(A(:))-b;
>> B=(A-b)*(255/a);
>> subplot(2,2,1);imshow(A);title('Citra A')
>> subplot(2,2,2);imhist(A);title('Histogram A')
>> subplot(2,2,3);imshow(B);title('Citra A di-it{adjust}')
>> subplot(2,2,4);imhist(B);title('Histogram A di-it{adjust}')
>> set(gcf,'MenuBar','none','Name','PRAKTIKUM 04 P1 (NIM: 20045000099)',...
'NumberTitle','off')
Percobaan 2:
>> A=imread('rice.png');
>> C=histeq(A);
>> subplot(2,2,1);imshow(A);title('Citra A')
17
>> subplot(2,2,2);imhist(A);title('Histogram A')
>> subplot(2,2,3);imshow(C);title('Citra A di-it{hist.equalisasi}')
>> subplot(2,2,4);imhist(C);title('Histogram A di-it{hist.equalisasi
>> set(gcf,'MenuBar','none','Name','PRAKTIKUM 04 P2 (NIM: 20045000099)',...
'NumberTitle','off')
2. Perbaikan Kualitas Citra Dengan Tapis Median Dan Rata-rata
Median adalah nilai tengah dari deretan angka yang terurut dari paling kecil hingga paling
besar. Prinsip median ini juga diterapkan terhadap suatu titik pixel beserta titik-titik tetangganya.
Dalam hal ini biasanya digunakan tetangga 4, tetangga 8.
Percobaan 3:
>> A=imread('Har_Mas.png');
>> imshow(A);title('Sebelum Ditapis')
>> B(:,:,1)=medfilt2(A(:,:,1),[3 3]);
>> B(:,:,2)=medfilt2(A(:,:,2),[3 3]);
>> B(:,:,3)=medfilt2(A(:,:,3),[3 3]);
>> figure;imshow(B);title('Setelah Ditapis Median')
>> format rat;pilter=ones(5)/25
>> C(:,:,1)=imfilter(A(:,:,1),pilter);
>> C(:,:,2)=imfilter(A(:,:,2),pilter);
>> C(:,:,3)=imfilter(A(:,:,3),pilter);
>> figure; imshow(C);title('Setelah Ditapis Rata-rata')
18
3. Perbaikan Kualitas Citra Dengan Tapis Lainnya
Beberapa tapis lainya yang sering digunakan antara lain tapis sobel, prewitt, gaussian,
dan lainnya.
Percobaan 4:
>> A=imread('coins.png');
>> tapis=fspecial('prewitt')
>> Bv=imfilter(A,tapis);
>> Bh=imfilter(A,tapis');
>> B=abs(Bv)+abs(Bh);
>> F(:,:,1,1)=A;
>> F(:,:,1,2)=Bv;
>> F(:,:,1,3)=Bh;
>> F(:,:,1,4)=B;
>> montage(F); title('Tapis Prewitt Vertikal, Horizontal, Dan Total')
4. Tugas
a. Cantumkan semua citra yang tampil pada semua hasil percobaan.
b. Ulangi percobaan 1, namun citra yang digunakan adalah file pout.tif
c. Ulangi percobaan 2, namun citra yang digunakan adalah file tire.tif
d. Ulangi percobaan 3, namun citra yang digunakan adalah file sikngeres.png
19
PRAKTIKUM 05
PERBAIKAN KUALITAS CITRA
(DENGAN OPR. MORFOLOGI)
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk :
1. Mengenal dan memahami operasi-operasi morfologi citra.
2. Dapat menggunakan berbagai operasi morfologi untuk perbaikan kualitas citra.
1. Operasi Dilasi, Erosi, Dan Structuring Element
Operasi dilasi adalah proses penggabungan titik-titik latar menjadi bagian dari suatu
obyek A berdasarkan structuring element S yang digunakan. Operasi dilasi ini dinotasikan
sebagai AS dan didefinisikan sebagai:
(5.1)
Operasi erosi adalah proses penghapusan titik-titik objek menjadi bagian dari latar,
berdasarkan structuring element S yang digunakan. Pada operasi ini, ukuran obyek diperkecil
dengan mengikis sekeliling obyek. Operasi erosi ini dinotasikan sebagai A S dan didefinisikan
sebagai:
(5.2)
Percobaan 1:
>> A=zeros(11,10)
>> A(5:7,4:5)=1
>> A(4:7,6:7)=1
>> S=[1 1 1]
>> B=imdilate(A,S)
 =
>> C=imdilate(A,S')
 =
>> D=imerode(A,S)
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0
0 0 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 0 0
0 0 1 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1
1
1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
20
.=
>> E=imerode(A,S')
... =
Percobaan 2:
>> A=imread('coins.png');
>> S=strel('diamond',2)
>> B=imerode(A,S);
>> C=A-B;
>> T=graythresh(C)
>> subplot(2,2,1);imshow(A);title('Citra A')
>> subplot(2,2,2);imshow(B);title('B = Citra A dierosi')
>> subplot(2,2,3);imshow(C);title('Citra C = (A – B)')
>> subplot(2,2,4);imshow(im2bw(C,T))
>> title('Citra (A - B) Dibinerkan')
>> set(gcf,'MenuBar','none','Name','PRAKTIKUM 05 Percobaan:2','NumberTitle','off')
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1
1
1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
21
2. Operasi Opening dan Closing
Operasi Opening terhadap suatu obyek A dengan structuring element S didefinisian
sebagai operasi erosi yang dilanjutkan dengan operasi dilasi. Sedangkan operasi closing
didefinisian sebagai operasi dilasi yang dilanjutkan dengan operasi erosi.
Percobaan 3:
>> A=imread('rice.png');
>> Atas=A(1:round(end/3),:);
>> Tengah=A(round(end/3)+1:round(2*end/3),:);
>> Bawah=A(round(2*end/3)+1:end,:);
>> B=[Atas>1.2*median(Atas(:));Tengah>1.3*median(Tengah(:));Bawah>1.5*median(Bawah(:))];
>> S=strel('diamond',2)
>> C=imopen(B,S);
>> subplot(2,2,1);imshow(A);title('Citra A')
>> subplot(2,2,2);imshow(im2bw(A));title('Citra A Dibinerkan Biasa')
>> subplot(2,2,3);imshow(B);title('Citra B = A Dibinerkan Parsial')
>> subplot(2,2,4);imshow(C);title('Citra C = B Diit{opening}')
>> set(gcf,'MenuBar','none','Name','PRAKTIKUM 05 Percobaan:3','NumberTitle','off')
3. Tugas
a. Cantumkan semua citra yang tampil pada semua hasil percobaan.
b. Ulangi percobaan 2, namun citra yang digunakan adalah file rice.png.
c. Ulangi percobaan 3, namun citra yang digunakan adalah file coins.png.
22
PRAKTIKUM 06
PENGANTAR SEGMENTASI CITRA
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk :
1. Mengenal dan memahami dasar-dasar segmentasi citra.
2. Dapat menggunakan segmentasi citra untuk aplikasi lanjut.
1. Segmentasi Citra Menurut Warna (RGB Dengan Bantuan Histogram)
Citra RGB dinyatakan dalam bentuk matriks 3 dimensi, dimana dimensi terakhir adalah
kanal warna merah (R), hijau (G), dan biru (B). Histogram masing-masing kanal warna
merupakan pola sebaran nilai pada R, G, maupun B. Pola sebaran ini dapat dimanfaatkan untuk
segmentasi.
Percobaan 1:
>> A=imread('coloredChips.png');
>> subplot(2,2,1);imshow(A);title('Citra RGB')
>> subplot(2,2,2);imhist(A(:,:,1))
>> title('Histogram Kanal R')
>> subplot(2,2,3);imhist(A(:,:,2))
>> title('Histogram Kanal G')
>> subplot(2,2,4);imhist(A(:,:,3))
>> title('Histogram Kanal B')
>> set(gcf,'MenuBar','none','Name',...
'CITRA RGB DAN HISTOGRANNYA','NumberTitle','off')
23
>> B_Biru=A(:,:,3)>227;
>> B_Kuning=A(:,:,1)>200 & A(:,:,2)>200 & A(:,:,3)<89;
>> B_Merah=A(:,:,1)>200 & A(:,:,2)<200 & A(:,:,3)<89;
>> B_Hijau=A(:,:,1)<50 & A(:,:,2)>100 & A(:,:,3)<226;
>> Biru=cat(3,B_Biru,B_Biru,B_Biru);
>> Biru=uint8(Biru).*A;
>> Kuning=cat(3,B_Kuning,B_Kuning,B_Kuning);
>> Kuning=uint8(Kuning).*A;
>> Merah=cat(3,B_Merah,B_Merah,B_Merah);
>> Merah=uint8(Merah).*A;
>> Hijau=cat(3,B_Hijau,B_Hijau,B_Hijau);
>> Hijau=uint8(Hijau).*A;
>> figure
>> subplot(2,3,[1 4]);imshow(A);title('Citra Asal')
>> subplot(2,3,2);imshow(Merah);title('Segmen Merah')
>> subplot(2,3,3);imshow(Hijau);title('Segmen Hijau')
>> subplot(2,3,5);imshow(Biru);title('Segmen Biru')
>> subplot(2,3,6);imshow(Kuning);title('Segmen Kuning')
>> set(gcf,'MenuBar','none','Name',...
'SEGMENTASI MENURUT WARNA (RGB)','NumberTitle','off')
2. Segmentasi Citra Menurut Warna (HSV Dengan Bantuan Histogram)
HSV merupakan salah satu ruang warna yang digunakan manusia dalam
memilih warna cat atau tinta. Sistem ini dipandang lebih dekat dibandingakan
dengan RGB dalam mendeskripsikan sensasi warna oleh mata manusia. Dalam
terminologi para seniman HSV berkaitan dengan tint, shade, dan tone. Model HSV
dinyatakan dalam gambar berikut:
24
Warna Hue
Red 0
Red 0
Yelow 0.1667
Green 0.3333
Cyan 0.5
Blue 0.6667
Magenta 0.8333
Percobaan 2:
>> A=imread('coloredChips.png');
>> B=rgb2hsv(A);
>> subplot(2,2,1);imshow(B);title('Citra HSV')
>> subplot(2,2,2);imhist(B(:,:,1))
>> title('Histogram Kanal H')
>> subplot(2,2,3);imhist(B(:,:,2))
>> title('Histogram Kanal S')
>> subplot(2,2,4);imhist(B(:,:,3))
>> title('Histogram Kanal V')
>> set(gcf,'MenuBar','none','Name',...
'CITRA HSV DAN HISTOGRANNYA','NumberTitle','off')
Percobaan 3:
>> % Lanjutan Praktikum 1 B adalah citra HSV
>> B_rah=(B(:,:,1)<0.05|B(:,:,1)>0.97) & B(:,:,2)>0.6;
>> B_ijo=B(:,:,1)>0.3 & B(:,:,1)<0.5;
>> B_iru=B(:,:,1)>0.5 & B(:,:,1)<0.8;
25
>> B_ing=B(:,:,1)>0.07 & B(:,:,1)<0.3 & B(:,:,2)>0.5;
>> Biru=cat(3,B_iru,B_iru,B_iru);
>> Biru=uint8(Biru).*A;
>> Kuning=cat(3,B_ing,B_ing,B_ing);
>> Kuning=uint8(Kuning).*A;
>> Merah=cat(3,B_rah,B_rah,B_rah);
>> Merah=uint8(Merah).*A;
>> Hijau=cat(3,B_ijo,B_ijo,B_ijo);
>> Hijau=uint8(Hijau).*A;
>> figure
>> subplot(2,3,1);imshow(A);title('Citra RGB')
>> subplot(2,3,4);imshow(B);title('Citra HSV')
>> subplot(2,3,2);imshow(Merah);title('Segmen Merah')
>> subplot(2,3,3);imshow(Hijau);title('Segmen Hijau')
>> subplot(2,3,5);imshow(Biru);title('Segmen Biru')
>> subplot(2,3,6);imshow(Kuning);title('Segmen Kuning')
>> set(gcf,'MenuBar','none','Name',...
'SEGMENTASI MENURUT WARNA (HSV)','NumberTitle','off')
3. Segmentasi Citra Menurut Bentuk
Secara umum, segmentasi menurut bentuk dilakukan berdasarkan besaran-
besaran geometris suatu obyek di dalam citra, seperti luas, keliling, panjang
sumbu mayor maupun minor, eksentrisitas, dan lain-lain.
Percobaan 4:
Script berikut (modus editor yang tersedia pada OCTAVE) akan menghasilkan gambar pada
bagian akhir Praktikum 06 ini.
26
% ===============================================================
% tulis script berikut dengan menggunakan editor pada OCTAVE
% simpan pada folder aktif dengan nama file 'Prak6_P4.m'
% ===============================================================
close all; clear;
A=imread('unggas2.png');
Bk=~(A(:,:,1)==239 & A(:,:,2)==228 & A(:,:,3)==176);
B=bwareaopen(Bk,99);
L=bwlabel(B);
S=regionprops(L,{'Area', 'Eccentricity'}); %Menghitung Luas dan Eccentricity
Ecce=vertcat(S.Eccentricity);
Area=vertcat(S.Area);
n=(1:length(Area))';
Bung=ismember(L,find(Ecce<0.9 & Area>1000)); % Pilah Berdasarkan Luas dan Eccentricity
Unggas=cat(3,A(:,:,1).*uint8(Bung),A(:,:,2).*uint8(Bung),A(:,:,3).*uint8(Bung));
Ir=A(5,end-5,1); Ig=A(5,end-5,2); Ib=A(5,end-5,3);
Latar1=cat(3,Ir*uint8(~Bung),Ig*uint8(~Bung),Ib*uint8(~Bung));
Hasil1=Unggas+Latar1;
Bun=Bk-Bung;
BUngg=cat(3,A(:,:,1).*uint8(Bun),A(:,:,2).*uint8(Bun),A(:,:,3).*uint8(Bun));
Latar2=cat(3,Ir*uint8(~Bun),Ig*uint8(~Bun),Ib*uint8(~Bun));
Hasil2=BUngg+Latar2;
imshow(A); title('Citra Asal')
figure; imshow(Hasil1); title('Unggas Terpilah-pilih')
figure; imshow(Hasil2); title('Bukan Unggas')
4. Tugas
a. Cantumkan semua citra yang tampil pada semua hasil percobaan.
b. Ulangi percobaan 4, namun citra yang digunakan berasal dari file unggas3.png.

More Related Content

Similar to ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf

Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfgunturwijaya7
 
Soal soal pbo java
Soal soal pbo java Soal soal pbo java
Soal soal pbo java Abdullah Beu
 
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docxLaporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docxkomzud
 
Pendeteksian Tepi - Buku Rinaldi Munir
Pendeteksian Tepi - Buku Rinaldi MunirPendeteksian Tepi - Buku Rinaldi Munir
Pendeteksian Tepi - Buku Rinaldi Munirdedidarwis
 
Laporan Tugas Grafika Komputer bangun 2 dimensi Code Block
Laporan Tugas Grafika Komputer bangun 2 dimensi Code BlockLaporan Tugas Grafika Komputer bangun 2 dimensi Code Block
Laporan Tugas Grafika Komputer bangun 2 dimensi Code BlockIhsan Nurhalim
 
Bab 8 pendeteksian tepi
Bab 8 pendeteksian tepiBab 8 pendeteksian tepi
Bab 8 pendeteksian tepiSyafrizal
 
PERT 1 - Citra.ppt
PERT 1 - Citra.pptPERT 1 - Citra.ppt
PERT 1 - Citra.pptssuserbcb591
 
Tutorial pengolahan citra menggunakan octave
Tutorial pengolahan citra menggunakan octaveTutorial pengolahan citra menggunakan octave
Tutorial pengolahan citra menggunakan octaveTumiarsimamora
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++Akmal Fajar
 
Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Ainun Najib
 
Pcd topik1 - fundamental
Pcd   topik1 - fundamentalPcd   topik1 - fundamental
Pcd topik1 - fundamentalSyafrizal
 

Similar to ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf (20)

Panduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdfPanduan_Belajar_Mandiri_MATLAB.pdf
Panduan_Belajar_Mandiri_MATLAB.pdf
 
Laporan pcd 01
Laporan pcd 01Laporan pcd 01
Laporan pcd 01
 
Image processing
Image processingImage processing
Image processing
 
LN s07-machine vision-s2
LN s07-machine vision-s2LN s07-machine vision-s2
LN s07-machine vision-s2
 
Soal soal pbo java
Soal soal pbo java Soal soal pbo java
Soal soal pbo java
 
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docxLaporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
 
Pendeteksian Tepi - Buku Rinaldi Munir
Pendeteksian Tepi - Buku Rinaldi MunirPendeteksian Tepi - Buku Rinaldi Munir
Pendeteksian Tepi - Buku Rinaldi Munir
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
Laporan Tugas Grafika Komputer bangun 2 dimensi Code Block
Laporan Tugas Grafika Komputer bangun 2 dimensi Code BlockLaporan Tugas Grafika Komputer bangun 2 dimensi Code Block
Laporan Tugas Grafika Komputer bangun 2 dimensi Code Block
 
Bab 8 pendeteksian tepi
Bab 8 pendeteksian tepiBab 8 pendeteksian tepi
Bab 8 pendeteksian tepi
 
9 pengolahan citra
9   pengolahan citra9   pengolahan citra
9 pengolahan citra
 
Tutorial Matlab
Tutorial MatlabTutorial Matlab
Tutorial Matlab
 
PERT 1 - Citra.ppt
PERT 1 - Citra.pptPERT 1 - Citra.ppt
PERT 1 - Citra.ppt
 
2 pengolahan_citra
 2 pengolahan_citra 2 pengolahan_citra
2 pengolahan_citra
 
Tutorial pengolahan citra menggunakan octave
Tutorial pengolahan citra menggunakan octaveTutorial pengolahan citra menggunakan octave
Tutorial pengolahan citra menggunakan octave
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++
 
Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1
 
13. Konsep Penelitian Operasional
13. Konsep Penelitian Operasional13. Konsep Penelitian Operasional
13. Konsep Penelitian Operasional
 
Pcd topik1 - fundamental
Pcd   topik1 - fundamentalPcd   topik1 - fundamental
Pcd topik1 - fundamental
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 

Recently uploaded

MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]Abdiera
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1udin100
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfkustiyantidew94
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)3HerisaSintia
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxawaldarmawan3
 
Lembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxLembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxbkandrisaputra
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapsefrida3
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdfvebronialite32
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxSyaimarChandra1
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 

Recently uploaded (20)

MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
Modul Ajar Biologi Kelas 11 Fase F Kurikulum Merdeka [abdiera.com]
 
Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1Dampak Pendudukan Jepang.pptx indonesia1
Dampak Pendudukan Jepang.pptx indonesia1
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
 
Lembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocxLembar Catatan Percakapan Pasca observasidocx
Lembar Catatan Percakapan Pasca observasidocx
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genap
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdf
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptxPrakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
Prakarsa Perubahan dengan Kanvas ATAP & BAGJA.pptx
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 

ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf

  • 1. MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL Disusun Oleh: Ir. Abd. Rabi’ MKom. LABORATOIUM INFORMATIKA DAN KOMPUTER PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS MERDEKA MALANG
  • 2. 2 PENDAHULUAN Pengolahan Citra Digital merupakan disiplin ilmu yang berkembang pesat belakangan ini. seiring pesatnya perkembangan komputer dan perangkat multimedia. Tujuan utama Pengolahan Citra Digital adalah menyiapkan citra agar lebih mudah diinterpretasi baik oleh manusia, komputer, maupun perangkat elektronik lainnya. Salah satu contoh aplikasi pengolahan citra adalah pembacaan meteran listrik maupun meteran air minum dengan ponsel android. Dalam hal ini akuisisi citra dilakukan dengan memotret angka- angka pada meteran listrik. Citra yang diperoleh kemudian perlu diolah untuk memisahkan obyek- obyek selain angka serta untuk memperbaiki kualitas angka-angka yang terkandung dalam citra. Selanjutnya dengan algoritma tertentu, citra angka akan dicocokkan dengan pola angka yang telah dikenali sehingga pembacaan meteran listrik dapat terjadi secara otomatis. Secara logika, suatu komputer akan menyimpan citra dalam bentuk matriks dalam memori. Karena itu Pengolahan Citra Digital terkait erat dengan operasi-operasi matriks. OCTAVE adalah salah satu software komputer yang berorientasi pada operasi matriks. Karena alasan ini, maka dalam praktikum Pengolahan Sinyal Digital digunakan software OCTAVE. Buku panduan praktikum ini lebih menekankan kepada kemudahan dalam mempelajari Pengolahan Citra Digital. Kerumitan dalam formulasi matematika maupun prosedural programming diupayakan seminimal mungkin. A. PENGENALAN SINGKAT OVTAVE OCTAVE adalah perangkat lunak gratis yang dipakai untuk analisis numerik maupun visualisasi data, sebagai salah satu alternatif dari perangkat lunak MATLAB. Keistimewaan OCTAVE disamping karena gratis, adalah kompatibilitasnya dengan MATLAB serta tersedia dalam berbagai sistem operasi. OCTAVE juga menyediakan fasilitas bahasa pemrograman teks maupun visual untuk penghitungan teknik yang terintegrasi dengan komputasi, visualisasi dan lingkungan pemrograman, 1. Memulai Menjalankan OCTAVE OCTAVE dijalankan pada sistem operasi Windows, secara default akan menampakan tampilan seperti pada gambar 1. seperti berikut:
  • 3. 3 Gambar 1. Tampilan Pertama OCTAVE Dijalankan Pada gambar 1. di atas, terdapat 2 buah windows yakni window utama dan command window. Di bagian window utama terdapat tampilan direktori yang aktif (C:Usershp). Direktori aktif ini dapat dipindahkan sesuai kebutuhan, namun disarankan untuk segera mengganti menjadi direktoti khusus intuk praktikum pngolahan citra (misalnya D:AJARPRAKTEKCitra). Bagian command window adalah tempat dimana hampir semua aktifitas dalam OCTAVE dapat dilakukan. Tanda bahwa Command Window, siap digunakan adalah cursor >> berkedip. 2. Menggunakan OCTAVE Sebagai Kalkulator Contoh penggunaan OCTAVE yang paling sederhana adalah kalkulator interaktif, langsung diketik dalam kotak command window, pada cursor >> >> 2+3 ans = 5 >> x=12+7*3 x = 33 >> x/11 ans = 3
  • 4. 4 3. Keluar Dari OCTAVE Keluar dari OCTAVE dapat dilakukan dengan dua cara, yakni mengetik quit pada command windows atau dengan meng-click icon silang (x) pada bagian pojok kanan dari tampilan OCTAVE. B. VARIABEL DALAM OCTAVE Variabel dalam OCTAVE dibentuk oleh perintah assignment. Sintaks perintah assignment adalah: >> nama variabel = nilai (atau suatu ekspressi) Suatu ekspressi kombinasi dari nilai, operasi matematika, variabel-variabel, serta function call. Berikut ini beberapa contoh erintah assignment dalam OCTAVE: >> ayah=1 ayah = 1 >> ibu=1 ibu = 1 >> anak=[ayah ibu ayah+ibu ayah-ibu ayah*ibu ayah/ibu] anak = 1 1 2 0 1 1 >> anak=anak+10 anak = 11 11 12 10 11 11 Secara default, type dari variabel adalah double (bilangan real presisi ganda). OCTAVE juga mengenal type-type lainnya, seperti pada contoh berikut: >> benar=true benar = 1 >> salah=~benar salah = 0 >> dia='Jantung Hatiku' dia = Jantung Hatiku
  • 5. 5 PRAKTIKUM 01 A K U IS IS I C IT R A Tujuan Instruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk : 1. Mengambil citra dari berbagai media yang terhubung dengan komputer. 2. Menyatakan citra sebagai matriks yang elemen-elemennya dapat diketahui 3. Menampilkan citra sebagai matriks, serta menampilkan matriks sebagai citra. 1. Mengambil Dan Menampilkan Citra Dari File Gambar (*.jpg , *.bmp, *.png, *.tif) Ada 2 function yang digunakan dalam pengambilan citra dari file gambar, yakni imread() dan uigetflle(). Function imread()gunanya untuk membaca file gambar sedangkan function uigetflle()gunanya untuk mendapatkan nama file serta nama folder melalui tampilan GUI. Percobaan 1: >> A=imread('ani pina makassar.jpg'); >> format={'*.jpg';'*.png';'*.tif';'*.bmp'}; >> [pail polder]=uigetfile(format) pail = aTummat.jpg polder = D:AJARCitra >> B=imread([polder pail]); Pada percobaan 1 tadi, telah dilakukan pembacaan citra yang berasal dari file gambar ani pina.jpg dan aTummat.jpg. Citra yang berasal dari file ani pina.jpg disimpan dalam variabel A sedangakan citra yang berasal dari file aTummat.jpg disimpan dalam
  • 6. 6 variabel B. Cara pengambilan citra ke dalam variabel B ini dilakukan apabila letak file-nya berada dalam folder “antah-berantah”. Variabel A dan B hasil pembacaan citra dapat dilihat type dan ukurannya dengan meggunakan perintah whos, seperti berikut ini: >> whos A B Variables visible from the current scope: variables in scope: top scope Attr Name Size Bytes Class ==== ==== ==== ===== ===== A 360x640x3 691200 uint8 B 525x700x3 1102500 uint8 Total is 1793700 elements using 1793700 bytes Variabel A dan B merupakan matriks 3 dimensi, yang berturut-turut menunjukkan ukuran baris, kolom, dan kanal warna RGB. Isi variabel A maupun B dapat dilihat baik sebagai angka (elemen matriks) maupun sebagai citra, dengan perintah berikut: Percobaan 2: >> A(1:9,1:7,1) % baris 1 s.d. 9, kolom 1 s.d. 7, kanal warna 1 ans = 130 131 132 135 138 138 139 130 131 133 135 139 139 140 129 131 133 137 141 141 142 129 131 134 139 143 144 145 128 131 135 141 146 147 148 127 131 136 142 148 149 150 127 130 137 144 150 151 152 126 130 137 145 151 153 154 127 131 138 146 153 155 156 >> imshow(A) % tampilkan citra pada matriks A
  • 7. 7 2. Mengambil Menampilkan Citra Dari File Video (*.avi , *.mp4, *.mpg, *.wmv) Untuk mengambil citra dari file video digunakan function VideoReader serta function readFrame seperti pada contoh berikut ini: Percobaan 3: >> pkg load video >> anu=VideoReader('Per_4_an.mp4') anu = class VideoReader: Duration [s] = 900.96 BitsPerPixel = 24 Bitrate = 346642 FrameRate [fps] = 30.00 Height [px] = 360 Width [px] = 640 Name = Per_4_an.mp4 Path = NumberOfFrames = 27026 FrameNumber = 0 VideoFormat = RGB24 VideoCodec = h264 AspectRatio = [1 1] >> C=readFrame(anu); >> imagesc(C); axis equal
  • 8. 8 3. Tugas a. Tuliskan perintah OCTAVE untuk mengambil citra dari file gambar atummat.jpg yang hasilnya disimpan ke dalam matriks C. b. Tampilkan nilai-nilai dari matriks C, baris 361 s.d. 375, kolom 300 s.d. 309, semua kanal warna. c. Tampilkan citra pada matriks C, baris 361 s.d. 461, kolom 300 s.d. 441, semua kanal warna. d. Tuliskan perintah MATLAB untuk mengambil citra dari file video rhinos.avi, frame ke k yang hasilnya disimpan ke dalam matriks F. Dalam hal ini k adalah nilai dari 2 digit terakhir dari NRP (NIM) anda masing-masing ditambah 19. e. Tampilkan citra pada matriks F.
  • 9. 9 PRAKTIKUM 02 KONVERSI CITRA Tujuan Instruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk : 1. Mengenal dan memahami citra bewarna RGB, citra graysclae, maupun citra biner. 2. Dapat mengkonversi citra bewarna RGB menjadi citra graysclae, maupun citra biner. 3. Dapat menyimpan matriks citra menjadi file *.jpg, *.png, *.tif, maupun *.bmp 1. Citra Bewarna RGB Menjadi Citra Grayscale Suatu citra bewarna RGB dinyatakan oleh MATLAB sebagai matriks 3 dimensi. Dimensi pertama adalah baris, dimensi kedua adalah kolom, dan dimensi ketiga adalah kanal warna Red Green dan Blue. Misalkan citra bewarna RGB disimpan dalam matriks Am,n,3 = (aijk). Dalam hal ini m = 1, 2, … , jumlah baris; n = 1, 2, … , jumlah kolom; dan k = 1, 2, 3. Rumus umum untuk mengkonversi citra bewarna RGB menjadi citra grayscale adalah: G = (gij) = (aij1) + (aij2) + (aij3) (2.1) dalam hal ini  +  +   Percobaan 1: >> A=imread('aTummat.jpg'); >> G=(1/3)*A(:,:,1)+(1/3)*A(:,:,2)+(1/3)*A(:,:,3); >> G1=(5/10)*A(:,:,1)+(3/10)*A(:,:,2)+(2/10)*A(:,:,3); >> G2=0.45*A(:,:,1)+0.35*A(:,:,2)+0.2*A(:,:,3); >> subplot(2,2,1);imshow(A);title('Citra RGB') >> subplot(2,2,2);imshow(G) >> title('GrayScale (alpha = beta = gamma = 1/3 )') >> subplot(2,2,3);imshow(G1) >> title('GrayScale (alpha = 0.5; beta = 0.3; gamma = 0.2 )') >> subplot(2,2,4);imshow(G2) >> title('GrayScale (alpha = 0.45; beta = 0.35; gamma = 0.2 )')
  • 10. 10 2. Citra Bewarna RGB Menjadi Citra Biner Citra biner dinyatakan sebagai suatu matriks 2 dimensi yang elemen-elemennya merupakan bilangan biner. Nilai true (atau 1) mewakili pixel bewarna putih, dan nilai false (atau 0) mewakili pixel bewarna hitam. Salah satu cara untuk mengkonversi Citra bewarna RGB menjadi citra biner adalah dengan rumus berikut: true atau 1, j ika (aij1) > (aij2) + (aij3) + 17; B = (bij) = (2.2) false, atau 0, selain itu. Percobaan 2: >> A=imread('aTummat.jpg'); >> B=A(:,:,1)>A(:,:,2)+A(:,:,3)+17; >> subplot(1,2,1);imshow(A);title('Citra RGB') >> subplot(1,2,2);imshow(B);title('Citra Biner') 3. Citra Grayscale Menjadi Citra Biner Salah satu cara untuk mengkonversi ctra grayscale menjadi citra biner adalah dengan rumus berikut: true atau 1, jika (gij) > T; B = (bij) = (2.3) false, atau 0, selain itu. Percobaan 3: >> A=imread('rice.png'); >> B=A>median(A(:)); >> subplot(1,2,1);imshow(A);title('Citra it{Grayscale}') >> subplot(1,2,2);imshow(B);title('Citra Biner')
  • 11. 11 4. Matriks Citra Menjadi File Gambar (*.jpg, *.png, *.tif, dan *.bmp) Untuk menyimpan suatu matriks citra menjadi file gambar *.jpg, *.png, *.tif, dan lain-lain digunakan function imwrite seperti berikut ini: Percobaan 4: >> A=imread('rice.png'); >> B=A>median(A(:)); >> imwrite(A,'berasku.jpg') >> imwrite(B,'binerku.bmp') 5. Tugas a. Cantumkan semua citra yang tampil pada semua hasil percobaan. b. Tuliskan perintah OCTAVE untuk mengambil citra dari file video MenanamPaprika.mp4, frame ke k yang hasilnya disimpan ke dalam matriks C. c. Ubah (konversikan) citra pada matriks C pada tugas b. di atas, menjadi citra grayscale D serta citra biner E. d. Simpanlah citra pada matriks C, D dan E pada tugas b. dan c. di atas, menjadi file gambar *.jpg.
  • 12. 12 PRAKTIKUM 03 OPERASI ALJABAR DAN GEOMETRI CITRA Tujuan Instruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk : 1. Mengenal dan mengerti operasi-operasi aljabar terhadap matriks citra. 2. Dapat melakukan operasi-operasi aljabar terhadap matriks citra. 3. Dapat melakukan operasi-operasi geometris citra. 1. Operasi Aljabar Terhadap Matriks Citra Matlab menyimpan citra dalam memori (work space) sebagai suatu matriks. Sebagaimana matriks dalam matematika, maka berlaku operasi-operasi aljabar terhadap matriks citra, seperti penjumlahan/pengurangan, serta perkalian/pembagian. Percobaan 1: >> A=imread('atummat.jpg'); >> B=A+75; >> C=A-75; >> subplot(2,2,[1 2]); imshow(A); title('Citra A') >> subplot(2,2,3); imshow(B); title('Citra (A + 75)') >> subplot(2,2,4); imshow(C); title('Citra (A - 75)') Percobaan 2: >> anu=VideoReader('AMAZING RED BELL PEPPER __ HARVESTING PAPRIKA __ SOUTH KOREA.mp4') anu = class VideoReader: Duration [s] = 106.12 BitsPerPixel = 24 Bitrate = 2256001 FrameRate [fps] = 30.00 Height [px] = 720 Width [px] = 1280 Name = AMAZING RED BELL PEPPER __ HARVESTING PAPRIKA __ SOUTH KOREA.mp4 Path = NumberOfFrames = 3183 FrameNumber = 0 VideoFormat = RGB24 VideoCodec = h264 AspectRatio = [1 1] >> A=AmbilFrameKe(anu,27); >> B=AmbilFrameKe(anu,739); >> subplot(2,2,1);imshow(A);title('Citra A') >> subplot(2,2,2);imshow(B);title('Citra B') >> subplot(2,2,3);imshow(A+B);title('Citra (A + B)') >> subplot(2,2,4);imshow(0.5*A+0.5*B);title('Citra (0.5A + 0.5B)')
  • 13. 13 Percobaan 3: >> A=imread('atummat.jpg'); >> subplot(2,2,[1 2]); imshow(A); title('Citra A') >> subplot(2,2,3); imshow(2*A); title('Citra ( 2 A )') >> subplot(2,2,4); imshow(A/2); title('Citra ( 0.5 A )') 2. Operasi Pencerminan Terdapat 2 macam pencerminan, yakni pencerminan terhadap sumbu vertikal dan pencerminan terhadap sumbu horizontal. Percobaan 4: >> A=imread('atummat.jpg'); >> B=A(:,end:-1:1,:); >> C=A(end:-1:1,:,:); >> D=A(end:-1:1,end:-1:1,:); >> subplot(2,2,1);imshow(A);title('Citra A') >> subplot(2,2,2);imshow(B);title('Cermin Citra A') >> subplot(2,2,3);imshow(C);title('Cermin Citra A') >> subplot(2,2,4);imshow(D);title('Cermin Citra A') 3. Operasi Pergeseran Terdapat 4 macam pergeseran, yakni pergeseran ke arah kiri, ke arah kanan, ke arah atas, dan ke arah bawah. Percobaan 5: >> A=imread('rice.png'); >> B=[uint8(zeros(size(A,1),50)) A(:,1:end-50)]; >> C=[A(:,51:end) uint8(zeros(size(A,1),50))]; >> D=[A(51:end,:); uint8(zeros(50,size(A,2))) ]; >> E=[uint8(zeros(50,size(A,2))); A(1:end-50,:) ]; >> subplot(2,3,[1 2]);imshow(A) >> subplot(2,3,[1 4]);imshow(A) >> subplot(2,3,[1 4]);imshow(A);title('Citra A') >> subplot(2,3,2);imshow(B);title('Citra A ke kanan 50 pixel') >> subplot(2,3,3);imshow(C);title('Citra A ke kiri 50 pixel') >> subplot(2,3,5);imshow(D);title('Citra A ke atas 50 pixel') >> subplot(2,3,6);imshow(E);title('Citra A ke bawah 50 pixel') >> set(gcf,'MenuBar','none','Name','PRAKTIKUM 03 Percobaan: 5','NumberTitle','off')
  • 14. 14 4. Operasi Penskalaan Adalah operasi memperbesar/memperkecil ukuran matriks citra. Secara umum pada operasi memperbesar serta memperkecil, diilustrasikan dalam operasi matriks sederhana berikut: Percobaan 6: >> A=imread('ani pina makassar.jpg'); >> B=imresize(A,0.1); >> C=imresize(A,[200 200]); >> D=imresize(A,[200 250]); >> subplot(2,2,1);imshow(A);title('Citra A') >> subplot(2,2,2);imshow(B);title(['Citra A dikecilkan 1/10 kali']) >> subplot(2,2,3);imshow(C);title(['Citra A dikecilkan (ukuran ',num2str(size(C)),')']) >> subplot(2,2,4);imshow(D);title(['Citra A dikecilkan (ukuran ',num2str(size(D)),')'])
  • 15. 15 5. Tugas a. Cantumkan semua citra yang tampil pada semua hasil percobaan. b. Ulangi semua percobaan Percobaan 6, namun citra yang digunakan adalah gambar wajah anda masing-masing.
  • 16. 16 PRAKTIKUM 04 PERBAIKAN KUALITAS CITRA (DALAM RUANG SPASIAL) Tujuan Instruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk : 1. Mengenal dan memahami perbaikan kualitas citra dalam ruang spasial. 2. Dapat melakukan berbagai operasi perbaikan kualitas citra berbasis titik pixel. 3.Dapat melakukan berbagai operasi perbaikan kualitas citra berbasis tetangga pixel. 1. Perbaikan Kualitas Citra Dengan Bantuan Histogram Histogram citra adalah sebaran nilai-nilai matriks citra dalam bentuk visual (diagram batang). Dari histogram citra dapat diketahui kecendrungan serta pola sebaran nilai yang berkaitan dengan kualitas citra. Secara umum histogram yang cenderung ke kiri, maka gambarnya cenderung gelap, sebaliknya ke kanan maka gambarnya cenderung terang. Percobaan 1: >> A=imread('rice.png'); >> b=min(A(:)); >> a=max(A(:))-b; >> B=(A-b)*(255/a); >> subplot(2,2,1);imshow(A);title('Citra A') >> subplot(2,2,2);imhist(A);title('Histogram A') >> subplot(2,2,3);imshow(B);title('Citra A di-it{adjust}') >> subplot(2,2,4);imhist(B);title('Histogram A di-it{adjust}') >> set(gcf,'MenuBar','none','Name','PRAKTIKUM 04 P1 (NIM: 20045000099)',... 'NumberTitle','off') Percobaan 2: >> A=imread('rice.png'); >> C=histeq(A); >> subplot(2,2,1);imshow(A);title('Citra A')
  • 17. 17 >> subplot(2,2,2);imhist(A);title('Histogram A') >> subplot(2,2,3);imshow(C);title('Citra A di-it{hist.equalisasi}') >> subplot(2,2,4);imhist(C);title('Histogram A di-it{hist.equalisasi >> set(gcf,'MenuBar','none','Name','PRAKTIKUM 04 P2 (NIM: 20045000099)',... 'NumberTitle','off') 2. Perbaikan Kualitas Citra Dengan Tapis Median Dan Rata-rata Median adalah nilai tengah dari deretan angka yang terurut dari paling kecil hingga paling besar. Prinsip median ini juga diterapkan terhadap suatu titik pixel beserta titik-titik tetangganya. Dalam hal ini biasanya digunakan tetangga 4, tetangga 8. Percobaan 3: >> A=imread('Har_Mas.png'); >> imshow(A);title('Sebelum Ditapis') >> B(:,:,1)=medfilt2(A(:,:,1),[3 3]); >> B(:,:,2)=medfilt2(A(:,:,2),[3 3]); >> B(:,:,3)=medfilt2(A(:,:,3),[3 3]); >> figure;imshow(B);title('Setelah Ditapis Median') >> format rat;pilter=ones(5)/25 >> C(:,:,1)=imfilter(A(:,:,1),pilter); >> C(:,:,2)=imfilter(A(:,:,2),pilter); >> C(:,:,3)=imfilter(A(:,:,3),pilter); >> figure; imshow(C);title('Setelah Ditapis Rata-rata')
  • 18. 18 3. Perbaikan Kualitas Citra Dengan Tapis Lainnya Beberapa tapis lainya yang sering digunakan antara lain tapis sobel, prewitt, gaussian, dan lainnya. Percobaan 4: >> A=imread('coins.png'); >> tapis=fspecial('prewitt') >> Bv=imfilter(A,tapis); >> Bh=imfilter(A,tapis'); >> B=abs(Bv)+abs(Bh); >> F(:,:,1,1)=A; >> F(:,:,1,2)=Bv; >> F(:,:,1,3)=Bh; >> F(:,:,1,4)=B; >> montage(F); title('Tapis Prewitt Vertikal, Horizontal, Dan Total') 4. Tugas a. Cantumkan semua citra yang tampil pada semua hasil percobaan. b. Ulangi percobaan 1, namun citra yang digunakan adalah file pout.tif c. Ulangi percobaan 2, namun citra yang digunakan adalah file tire.tif d. Ulangi percobaan 3, namun citra yang digunakan adalah file sikngeres.png
  • 19. 19 PRAKTIKUM 05 PERBAIKAN KUALITAS CITRA (DENGAN OPR. MORFOLOGI) Tujuan Instruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk : 1. Mengenal dan memahami operasi-operasi morfologi citra. 2. Dapat menggunakan berbagai operasi morfologi untuk perbaikan kualitas citra. 1. Operasi Dilasi, Erosi, Dan Structuring Element Operasi dilasi adalah proses penggabungan titik-titik latar menjadi bagian dari suatu obyek A berdasarkan structuring element S yang digunakan. Operasi dilasi ini dinotasikan sebagai AS dan didefinisikan sebagai: (5.1) Operasi erosi adalah proses penghapusan titik-titik objek menjadi bagian dari latar, berdasarkan structuring element S yang digunakan. Pada operasi ini, ukuran obyek diperkecil dengan mengikis sekeliling obyek. Operasi erosi ini dinotasikan sebagai A S dan didefinisikan sebagai: (5.2) Percobaan 1: >> A=zeros(11,10) >> A(5:7,4:5)=1 >> A(4:7,6:7)=1 >> S=[1 1 1] >> B=imdilate(A,S)  = >> C=imdilate(A,S')  = >> D=imerode(A,S) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 20. 20 .= >> E=imerode(A,S') ... = Percobaan 2: >> A=imread('coins.png'); >> S=strel('diamond',2) >> B=imerode(A,S); >> C=A-B; >> T=graythresh(C) >> subplot(2,2,1);imshow(A);title('Citra A') >> subplot(2,2,2);imshow(B);title('B = Citra A dierosi') >> subplot(2,2,3);imshow(C);title('Citra C = (A – B)') >> subplot(2,2,4);imshow(im2bw(C,T)) >> title('Citra (A - B) Dibinerkan') >> set(gcf,'MenuBar','none','Name','PRAKTIKUM 05 Percobaan:2','NumberTitle','off') 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 21. 21 2. Operasi Opening dan Closing Operasi Opening terhadap suatu obyek A dengan structuring element S didefinisian sebagai operasi erosi yang dilanjutkan dengan operasi dilasi. Sedangkan operasi closing didefinisian sebagai operasi dilasi yang dilanjutkan dengan operasi erosi. Percobaan 3: >> A=imread('rice.png'); >> Atas=A(1:round(end/3),:); >> Tengah=A(round(end/3)+1:round(2*end/3),:); >> Bawah=A(round(2*end/3)+1:end,:); >> B=[Atas>1.2*median(Atas(:));Tengah>1.3*median(Tengah(:));Bawah>1.5*median(Bawah(:))]; >> S=strel('diamond',2) >> C=imopen(B,S); >> subplot(2,2,1);imshow(A);title('Citra A') >> subplot(2,2,2);imshow(im2bw(A));title('Citra A Dibinerkan Biasa') >> subplot(2,2,3);imshow(B);title('Citra B = A Dibinerkan Parsial') >> subplot(2,2,4);imshow(C);title('Citra C = B Diit{opening}') >> set(gcf,'MenuBar','none','Name','PRAKTIKUM 05 Percobaan:3','NumberTitle','off') 3. Tugas a. Cantumkan semua citra yang tampil pada semua hasil percobaan. b. Ulangi percobaan 2, namun citra yang digunakan adalah file rice.png. c. Ulangi percobaan 3, namun citra yang digunakan adalah file coins.png.
  • 22. 22 PRAKTIKUM 06 PENGANTAR SEGMENTASI CITRA Tujuan Instruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk : 1. Mengenal dan memahami dasar-dasar segmentasi citra. 2. Dapat menggunakan segmentasi citra untuk aplikasi lanjut. 1. Segmentasi Citra Menurut Warna (RGB Dengan Bantuan Histogram) Citra RGB dinyatakan dalam bentuk matriks 3 dimensi, dimana dimensi terakhir adalah kanal warna merah (R), hijau (G), dan biru (B). Histogram masing-masing kanal warna merupakan pola sebaran nilai pada R, G, maupun B. Pola sebaran ini dapat dimanfaatkan untuk segmentasi. Percobaan 1: >> A=imread('coloredChips.png'); >> subplot(2,2,1);imshow(A);title('Citra RGB') >> subplot(2,2,2);imhist(A(:,:,1)) >> title('Histogram Kanal R') >> subplot(2,2,3);imhist(A(:,:,2)) >> title('Histogram Kanal G') >> subplot(2,2,4);imhist(A(:,:,3)) >> title('Histogram Kanal B') >> set(gcf,'MenuBar','none','Name',... 'CITRA RGB DAN HISTOGRANNYA','NumberTitle','off')
  • 23. 23 >> B_Biru=A(:,:,3)>227; >> B_Kuning=A(:,:,1)>200 & A(:,:,2)>200 & A(:,:,3)<89; >> B_Merah=A(:,:,1)>200 & A(:,:,2)<200 & A(:,:,3)<89; >> B_Hijau=A(:,:,1)<50 & A(:,:,2)>100 & A(:,:,3)<226; >> Biru=cat(3,B_Biru,B_Biru,B_Biru); >> Biru=uint8(Biru).*A; >> Kuning=cat(3,B_Kuning,B_Kuning,B_Kuning); >> Kuning=uint8(Kuning).*A; >> Merah=cat(3,B_Merah,B_Merah,B_Merah); >> Merah=uint8(Merah).*A; >> Hijau=cat(3,B_Hijau,B_Hijau,B_Hijau); >> Hijau=uint8(Hijau).*A; >> figure >> subplot(2,3,[1 4]);imshow(A);title('Citra Asal') >> subplot(2,3,2);imshow(Merah);title('Segmen Merah') >> subplot(2,3,3);imshow(Hijau);title('Segmen Hijau') >> subplot(2,3,5);imshow(Biru);title('Segmen Biru') >> subplot(2,3,6);imshow(Kuning);title('Segmen Kuning') >> set(gcf,'MenuBar','none','Name',... 'SEGMENTASI MENURUT WARNA (RGB)','NumberTitle','off') 2. Segmentasi Citra Menurut Warna (HSV Dengan Bantuan Histogram) HSV merupakan salah satu ruang warna yang digunakan manusia dalam memilih warna cat atau tinta. Sistem ini dipandang lebih dekat dibandingakan dengan RGB dalam mendeskripsikan sensasi warna oleh mata manusia. Dalam terminologi para seniman HSV berkaitan dengan tint, shade, dan tone. Model HSV dinyatakan dalam gambar berikut:
  • 24. 24 Warna Hue Red 0 Red 0 Yelow 0.1667 Green 0.3333 Cyan 0.5 Blue 0.6667 Magenta 0.8333 Percobaan 2: >> A=imread('coloredChips.png'); >> B=rgb2hsv(A); >> subplot(2,2,1);imshow(B);title('Citra HSV') >> subplot(2,2,2);imhist(B(:,:,1)) >> title('Histogram Kanal H') >> subplot(2,2,3);imhist(B(:,:,2)) >> title('Histogram Kanal S') >> subplot(2,2,4);imhist(B(:,:,3)) >> title('Histogram Kanal V') >> set(gcf,'MenuBar','none','Name',... 'CITRA HSV DAN HISTOGRANNYA','NumberTitle','off') Percobaan 3: >> % Lanjutan Praktikum 1 B adalah citra HSV >> B_rah=(B(:,:,1)<0.05|B(:,:,1)>0.97) & B(:,:,2)>0.6; >> B_ijo=B(:,:,1)>0.3 & B(:,:,1)<0.5; >> B_iru=B(:,:,1)>0.5 & B(:,:,1)<0.8;
  • 25. 25 >> B_ing=B(:,:,1)>0.07 & B(:,:,1)<0.3 & B(:,:,2)>0.5; >> Biru=cat(3,B_iru,B_iru,B_iru); >> Biru=uint8(Biru).*A; >> Kuning=cat(3,B_ing,B_ing,B_ing); >> Kuning=uint8(Kuning).*A; >> Merah=cat(3,B_rah,B_rah,B_rah); >> Merah=uint8(Merah).*A; >> Hijau=cat(3,B_ijo,B_ijo,B_ijo); >> Hijau=uint8(Hijau).*A; >> figure >> subplot(2,3,1);imshow(A);title('Citra RGB') >> subplot(2,3,4);imshow(B);title('Citra HSV') >> subplot(2,3,2);imshow(Merah);title('Segmen Merah') >> subplot(2,3,3);imshow(Hijau);title('Segmen Hijau') >> subplot(2,3,5);imshow(Biru);title('Segmen Biru') >> subplot(2,3,6);imshow(Kuning);title('Segmen Kuning') >> set(gcf,'MenuBar','none','Name',... 'SEGMENTASI MENURUT WARNA (HSV)','NumberTitle','off') 3. Segmentasi Citra Menurut Bentuk Secara umum, segmentasi menurut bentuk dilakukan berdasarkan besaran- besaran geometris suatu obyek di dalam citra, seperti luas, keliling, panjang sumbu mayor maupun minor, eksentrisitas, dan lain-lain. Percobaan 4: Script berikut (modus editor yang tersedia pada OCTAVE) akan menghasilkan gambar pada bagian akhir Praktikum 06 ini.
  • 26. 26 % =============================================================== % tulis script berikut dengan menggunakan editor pada OCTAVE % simpan pada folder aktif dengan nama file 'Prak6_P4.m' % =============================================================== close all; clear; A=imread('unggas2.png'); Bk=~(A(:,:,1)==239 & A(:,:,2)==228 & A(:,:,3)==176); B=bwareaopen(Bk,99); L=bwlabel(B); S=regionprops(L,{'Area', 'Eccentricity'}); %Menghitung Luas dan Eccentricity Ecce=vertcat(S.Eccentricity); Area=vertcat(S.Area); n=(1:length(Area))'; Bung=ismember(L,find(Ecce<0.9 & Area>1000)); % Pilah Berdasarkan Luas dan Eccentricity Unggas=cat(3,A(:,:,1).*uint8(Bung),A(:,:,2).*uint8(Bung),A(:,:,3).*uint8(Bung)); Ir=A(5,end-5,1); Ig=A(5,end-5,2); Ib=A(5,end-5,3); Latar1=cat(3,Ir*uint8(~Bung),Ig*uint8(~Bung),Ib*uint8(~Bung)); Hasil1=Unggas+Latar1; Bun=Bk-Bung; BUngg=cat(3,A(:,:,1).*uint8(Bun),A(:,:,2).*uint8(Bun),A(:,:,3).*uint8(Bun)); Latar2=cat(3,Ir*uint8(~Bun),Ig*uint8(~Bun),Ib*uint8(~Bun)); Hasil2=BUngg+Latar2; imshow(A); title('Citra Asal') figure; imshow(Hasil1); title('Unggas Terpilah-pilih') figure; imshow(Hasil2); title('Bukan Unggas') 4. Tugas a. Cantumkan semua citra yang tampil pada semua hasil percobaan. b. Ulangi percobaan 4, namun citra yang digunakan berasal dari file unggas3.png.