SlideShare a Scribd company logo
1
TUGAS MANDIRI
Tutorial Operasi Geometrik
Mata Kuliah: Pengolahan Citra Digital
l
130210097 : Rina Permata Sari
Kode Kelas : 142-T128P-M5
Dosen : Cosmas Eko Suharyanto
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS PUTERA BATAM
2015
2
KATA PENGANTAR
ِِ‫م‬ْ‫ي‬ ِ‫ح‬ ْ‫الر‬ ِ‫من‬ْ‫ح‬ ‫ه‬‫الر‬ ِ ‫ه‬‫اَّلل‬ ِ‫م‬ْ‫س‬ِ‫ب‬
Assalamu’alaikum Wr.Wb
Puji syukur kami panjatkan ke hadirat Allah Subhanahu wata’ala, karena berkat
rahmat-Nya kami dapat menyelesaikan makalah yang berjudul “Tutorial Operasi Geometrik.
Makalah ini diajukan guna memenuhi tugas mata kuliah Pengolahan Citra Digital.
Kami mengucapkan terima kasih kepada semua pihak yang telah membantu sehingga
makalah ini dapat diselesaikan sesuai dengan waktunya. Makalah ini masih jauh dari
sempurna. Oleh karena itu kami mengharapkan kritik dan saran yang bersifat membangun
demi kesempurnaan makalah ini.
Semoga makalah ini memberikan informasi bagi masyarakat dan bermanfaat untuk
pengembangan ilmu pengetahuan bagi kita semua.
Batam, Juni 2015
Penulis
Kelompok
3
DAFTAR ISI
KATA PENGANTAR........................................................................................................................ 2
DAFTAR ISI................................................................................................................................ 3
BAB I..........................................................................................................................................4
PENDAHULUAN........................................................................................................................ 4
1.1 Penagantar Pengolahan Citra...................................................................................................4
BAB II.........................................................................................................................................5
PEMBAHASAN .......................................................................................................................... 5
2.1 Penggeseran citra .................................................................................................................... 5
2.2 Pemutaran citra....................................................................................................................... 6
2.3 Interpolasi piksel..................................................................................................................... 8
2.4 Pemutaran citra berdasarkan sebarang koordinat .......................................................................9
2.5 Pemutaran citra secara utuh ................................................................................................... 11
2.6 Pembesaran citra................................................................................................................... 13
2.7 Pengecilan citra..................................................................................................................... 15
2.8 Pembesaran citra dengan skala vertikal dan horizontal............................................................. 16
2.9 Pencerminan citra.................................................................................................................. 18
2.10 Transformasi affine ............................................................................................................. 19
2.11 Efek ripple .......................................................................................................................... 23
2.12 Efek twirl............................................................................................................................ 24
2.13 Transformasi spherical......................................................................................................... 26
2.14 Transformasi bilinear........................................................................................................... 28
BAB III........................................................................................................................................ 31
PENUTUP ................................................................................................................................... 31
3.1. Kesimpulan.......................................................................................................................... 31
3.2. Kritik dan saran.................................................................................................................... 31
DAFTAR PUSTAKA....................................................................................................................... 32
4
BAB I
PENDAHULUAN
1.1 PengantarPengolahanCitra
Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat
pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan
menggunakan teknik tertentu. Pengolahan citra merupakan bidang yang bersifat multidisiplin,
yang terdiri dari banyak aspek, antara lain fisika, elektronika, matematika, seni dan teknologi
komputer.
Pengolahan citra (image processing) memiliki hubungan yang sangat erat dengan disiplin
ilmu yang lain. jika sebuah ilmu disiplin ilmu dinyatakan dengan bentuk proses suatu input
menjadi output, maka pengolahan citra memiliki input berupa citra serta output juga berupa
citra.
Secara umum, istilah pengolahan citra digital menyatakan “pemrosesan gambar berdimensi-
dua melalui komputer digital” (Jain, 1989). Menurut Efford (2000), pengolahan citra adalah
istilah umum untuk berbagai teknik yang k
eberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara. Foto adalah
contoh gambar berdimensi dua yang bisa diolah dengan mudah.Setiap foto dalam bentuk citra
digital (misalnya berasal dari kamera digital) dapat diolah melalui perangkat-lunak tertentu.
Operasi geometrik adalah operasi pada citra yang dilakukan secara geometris seperti
translasi, rotasi, dan penyekalaan. Pada operasi seperti ini terdapat pemetaan geometrik, yang
menyatakan hubungan pemetaan antara piksel pada citra masukan dan piksel pada citra
keluaran. Secara prinsip, terdapat dua cara yang dapat dipakai. Pertama yaitu pemetaan ke
depan dan kedua berupa pemetaan ke belakang.
5
BAB II
PEMBAHASAN
2.1 Penggeserancitra
Penggeseran citra ke arah mendatar atau vertikal dapat dilaksanakan dengan mudah. Rumus
yang digunakan sebagai berikut:
𝑥 𝑏𝑎𝑟𝑢 = 𝑥 𝑙𝑎𝑚𝑎 + 𝑠 𝑥 (5.1)
𝑦 𝑏𝑎𝑟𝑢 = 𝑦𝑙𝑎𝑚𝑎 + 𝑠 𝑦 (5.2)
Untuk penyederhanaan pembahasan, sx dan sy dianggap bertipe bilangan bulat.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
F = imread(‘D:Imagekelompok.jpg);
[tinggi, lebar] = size(F);
sx = 45; % Penggesaran arah horisontal
sy = -35; % Penggesaran arah vertikal
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
6
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan
hasil penggeseran Citra tersebut .
Gambar. Contoh penggeseran citra
2.2 Pemutaran citra
Suatu citra dapat diputar dengan sudut 𝜃 seiring arah jarum jam atau berlawanan arah jarum
jam dengan pusat putaran pada koordinat (0,0). Gambar 5.3 menjelaskan bentuk pemutaran
citra. Adapun rumus yang digunakan untuk memutar citra dengan sudut 𝜃 berlawanan arah
jam berupa:
𝑥 𝑏𝑎𝑟𝑢 = 𝑥 ∗ 𝐶𝑜𝑠( 𝜃) + 𝑦 ∗ 𝑆𝑖𝑛( 𝜃) (5.3)
𝑦 𝑏𝑎𝑟𝑢 = 𝑦 ∗ 𝐶𝑜𝑠( 𝜃) − 𝑥 ∗ 𝑆𝑖𝑛(𝜃) (5.4)
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
7
F = imread(‘D:Imagegedung.jpg’);
[tinggi, lebar] = size(F);
sudut = 10; % Sudut pemutaran
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
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan
hasil penggeseran Citra tersebut .
Gambar. Contohpemutarancitra
8
2.3 Interpolasi piksel
Hasil pemutaran citra menggunakan rotasi.m menimbulkan efek bergerigi pada objek citra.
Hal itu diakibatkan oleh penggunaan nilai intensitas didasarkan pada piksel tetangga
terdekat, yang dilakukan melalui:
x2 = round(x * cosa + y * sina);
y2 = round(y * cosa - x * sina);
Penggunaan fungsi round (pembulatan ke atas) merupakan upaya untuk menggunakan
intensitas piksel terdekat. Alternatif lain dilakukan dengan menggunakan floor (pembulatan
ke bawah).
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
F = imread(‘D:Imagegedung.png');
[tinggi, lebar] = size(F);
sudut = 15; % Sudut pemutaran
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)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
9
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
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan
hasil penggeseran Citra tersebut .
2.4 Pemutaran citra berdasarkansebarang koordinat
Operasi pemutaran citra dapat dilakukan dengan pusat di mana saja; tidak harus dari (0, 0).
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
F = imread(‘D:Imagepintu.jpg);
[tinggi, lebar] = size(F);
10
sudut = 10; % Sudut pemutaran
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
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan
hasil penggeseran Citra tersebut .
Gambar. Contoh Pemutaran citra berdasarkan sebarang koordinat
11
2.5 Pemutaran citra secara utuh
Pada seluruh contoh yang telah diberikan, ada bagian gambar yang hilang ketika pemutaran
dilaksanakan. Namun, adakalanya dihendaki agar pemutaran citra tidak membuat ada bagian
citra asli hilang. Untuk keperluan ini, ukuran citra hasil pemutaran harus diubah sesuai
dengan sudut putaran.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
F = imread(‘D:Imagepintu.jpg);
[tinggi, lebar] = size(F);
sudut = 45; % Sudut pemutaran
rad = pi * sudut/180;
cosa = cos(rad);
sina = sin(rad);
x11 = 1; y11 = 1;
x12 = lebar; y12 = 1;
x13 = lebar; y13 = tinggi;
x14 = 1; y14 = tinggi;
m = floor(tinggi/2);
n = floor(lebar/2);
% Menentukan pojok
x21 = ((x11-n) * cosa + (y11-m) * sina + n);
y21 = ((y11-m) * cosa - (x11-n) * sina + m);
x22 = ((x12-n) * cosa + (y12-m) * sina + n);
y22 = ((y12-m) * cosa - (x12-n) * sina + m);
x23 = ((x13-n) * cosa + (y13-m) * sina + n);
12
y23 = ((y13-m) * cosa - (x13-n) * sina + m);
x24 = ((x14-n) * cosa + (y14-m) * sina + n);
y24 = ((y14-m) * cosa - (x14-n) * sina + m);
ymin = min([y21 y22 y23 y24]);
xmin = min([x21 x22 x23 x24]);
ymak = max([y21 y22 y23 y24]);
xmak = max([x21 x22 x23 x24]);
lebar_baru = xmak - xmin + 1;
tinggi_baru = ymak - ymin + 1;
tambahan_y = floor((tinggi_baru-tinggi)/2);
tambahan_x = floor((lebar_baru-lebar)/2);
F2=zeros(tinggi_baru, lebar_baru);
for y=1 : tinggi
for x=1 : lebar
F2(y+tambahan_y, x+tambahan_x) = F(y, x);
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan
hasil penggeseran Citra tersebut
13
.
2.6 Pembesarancitra
Suatu citra dapat diperbesar dengan membuat setiap piksel menjadi beberapa piksel.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = perbesar(berkas, sy,sx)
F = imread(berkas);
[tinggi, lebar] = size(F);
tinggi_baru = tinggi * sy;
lebar_baru = lebar * sx;
F2 = double(F);
for y=1 : tinggi_baru
y2 = ((y-1) / sy) + 1;
for x=1 : lebar_baru
x2 = ((x-1) / sx) + 1;
G(y, x) = F(floor(y2), floor(x2));
Gambar. Contoh Pemutaran utuh
14
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line
8. Selanjutnya ketik Img = perbesar('D:Imagegerbang.jpg', 3, 3);
9. Dan imshow(G);untuk menampilkan hasil penggeseran Citra tersebut .
Gambar. Contoh Pembesaran Citra
15
2.7 Pengecilancitra
Bagaimana kalau ingin memperkecil citra? Secara prinsip, pengecilan citra berarti
mengurangi jumlah piksel. Algoritma yang digunakan untuk mewujudkan perbesar.m
maupun perbesar2.m dapat digunakan untuk keperluan ini dengan m berupa bilangan pecahan
seperti 1/2, ¼, 1/8, dan seterusnya.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = perbesar(berkas, sy,sx)
F = imread(berkas);
[tinggi, lebar] = size(F);
tinggi_baru = tinggi * sy;
lebar_baru = lebar * sx;
F2 = double(F);
for y=1 : tinggi_baru
y2 = ((y-1) / sy) + 1;
for x=1 : lebar_baru
x2 = ((x-1) / sx) + 1;
G(y, x) = F(floor(y2), floor(x2));
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line
8. Selanjutnya ketik Img = perbesar2(‘D:Imagegerbang.jpg, 0.5, 0.5);
16
9. Dan imshow(G);untuk menampilkan hasil penggeseran Citra tersebut .
2.8 Pembesarancitra dengan skala vertikaldan horizontal
Fungsi perbesar dan perbesar2 dapat digunakan untuk melakukan perbesaran/pengecilan
dengan skala horizontal dan vertikal yang berbeda.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
Gambar. Contoh memperkecil citra
17
3. Ketik Sintax berikut pada Notepad .
function G = perbesar(berkas, sy,sx)
F = imread(berkas);
[tinggi, lebar] = size(F);
tinggi_baru = tinggi * sy;
lebar_baru = lebar * sx;
F2 = double(F);
for y=1 : tinggi_baru
y2 = ((y-1) / sy) + 1;
for x=1 : lebar_baru
x2 = ((x-1) / sx) + 1;
G(y, x) = F(floor(y2), floor(x2));
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Selanjutnya ketik Img = perbesar(‘D:Imagesuasana.jpg, 0.5, 2.5);
8. Dan imshow(G);untuk menampilkan hasil penggeseran Citra tersebut .
Gambar. Contoh besar vertical dan Horisontal
18
2.9 Pencerminancitra
Pencerminan yang umum dilakukan berupa pencerminan secara vertikal dan pencerminan
secara horizontal.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = cerminh(F)
[tinggi, lebar] = size(F);
for y=1 : tinggi
for x=1 : lebar
x2 = lebar - x + 1;
y2 = y;
G(y, x) = F(y2, x2);
end
end
end
Atau
function H = cerminv(F)
[tinggi, lebar] = size(F);
for y=1 : tinggi
for x=1 : lebar
x2 = x;
y2 = tinggi - y + 1;
G(y, x) = F(y2, x2);
end
end
end
19
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line
8. Ketik F = imread(‘D:Imagekelompok.jpg); untuk membaca gambar .
9. Ketik G = cerminh(F); imshow(G) atau G = cerminv(F); imshow(G) untuk menampilkan
gambar .
2.10 Transformasiaffine
Transformasi affine adalah transformasi linear yang menyertakan penskalaan, pemutaran,
penggeseran, dan shearing (pembengkokan). Transformasi affine dapat dinyatakan dengan
persamaan seperti berikut:
[
𝑥′
𝑦′
] = [
𝑎11 𝑎12
𝑎21 𝑎22
] [
𝑥
𝑦] + [
𝑡 𝑥
𝑡 𝑦
] (5.10)
Persamaan di atas dapat ditulis pula menjadi seperti berikut:
Gambar. Contoh pencerminan citra
20
[
𝑥′
𝑦′
1
] = [
𝑎11 𝑎12 𝑡 𝑥
𝑎21 𝑎22 𝑡 𝑦
0 0 1
] [
𝑥
𝑦
1
] (5.11)
Berdasarkan persamaan di atas, terlihat bahwa transformasi affine memiliki enam derajat
kebebasan: dua untuk translasi (tx dan ty) dan empat buah untuk rotasi, penskalaan, stretching,
dan shearing (a11, a12, a21, dan a22).
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = taffine(F, a11, a12, a21, a22, tx, ty)
[tinggi, lebar] = size(F);
for y=1 : tinggi
for x=1 : lebar
x2 = a11 * x + a12 * y + tx;
y2 = a21 * x + a22 * y + ty;
if (x2>=1) && (x2<=lebar) && ...
(y2>=1) && (y2<=tinggi)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
if (floor(x2)==lebar) || ...
(floor(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));
21
G(y, x) = intensitas;
end
else
G(y, x) = 0;
end
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line
8. Pilih dan ketik sintak berikut sesuai dengan keinginan .
Contoh penggunaan fungsi taffine untuk melakukan pembengkokan:
F = imread(‘D:Imagekelompok.jpg);
G = taffine(F,1,0.15,0,1,0,0);
imshow(G)
Contoh berikut digunakan untuk memutar gambar:
rad = 10 * pi / 180;
G = taffine(F,cos(rad),sin(rad), …
-sin(rad),cos(rad),0,0);
imshow(G)
Contoh penggabungan rotasi dan translasi:
G = taffine(F,cos(rad),sin(rad),-sin(rad), …
cos(rad),-30,-50);
Contoh penggabungan rotasi, penskalaan, dan translasi:
22
G = taffine(F,2 * cos(rad),sin(rad),-sin(rad), …
2 * cos(rad),-30,-50);
Perlu diketahui, angka seperti 2 di depan cos(rad) menyatakan bahwa hasilnya adalah
kebalikannya, yaitu ½ kalinya.

Gambar. Contoh effek Taffine
23
2.11 Efek ripple
Efek ripple (riak) adalah aplikasi transformasi citra yang membuat gambar terlihat
bergelombang. Efek riakdapaat dibuat baik pada arah x maupun y. Transformasinya seperti
berikut:
𝑥 = 𝑥′
+ 𝑎 𝑥 𝑠𝑖𝑛
2𝜋𝑦′
𝑇𝑥
(5.12)
𝑦 = 𝑦′
+ 𝑎 𝑦 𝑠𝑖𝑛
2𝜋𝑥′
𝑇𝑦
(5.13)
Dalam hal ini, ax dan ay menyatakan amplitudoriak gelombang sinus, sedangkan Tx dan Ty
menyatakan periode gelombang sinus.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = ripple(F, ax, ay, tx, ty)
% RIPPLE Berfungsi untuk melakukan transformasi 'ripple'.
dimensi = size(F);
tinggi = dimensi(1);
lebar = dimensi(2);
for y=1 : tinggi
for x=1 : lebar
x2 = x + ax * sin(2 * pi * y / tx);
y2 = y + ay * sin(2 * pi * x / ty);
if (x2=1) && (x2<=lebar) && ...
(y2=1) && (y2<=tinggi)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
24
if (floor(x2)==lebar) || ...
(floor(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
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7.Ketikan G = uint8(G); Di Line
8.Pilih dan ketik sintak
F = imread(‘D:imagegedung.png');
G = ripple(F,10,15,120, 250);
9. Ketik imshow(G)untuk menampilkan gambar .
2.12 Efek twirl
Transformasi twirl(olak atau puntiran) dilakukan dengan memutar citra berdasarkan titik
pusat citra, tetapi tidak bersifat linear.
Turorialnya adalah sebagai berikut :
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
25
3. Ketik Sintax berikut pada Notepad .
function G = twirl(F)
% TWIRL Berfungsi untuk melakukan transformasi 'twirl'
dimensi = size(F);
tinggi = dimensi(1);
lebar = dimensi(2);
xc = round(lebar / 2);
yc = round(tinggi / 2);
alpha = 43 * pi / 180;
rmaks = 0.5 * sqrt(xc^2 + yc ^ 2); % 1/2 diagonal citra
for y=1 : tinggi
for x=1 : lebar
r = sqrt((x-xc)^2+(y-yc)^2);
beta = atan2(y-yc, x-xc) + …
alpha * (rmaks - r) / rmaks;
x2 = xc + r * cos(beta);
y2 = yc + r * sin(beta);
if (x2=1) && (x2<=lebar) && ...
(y2=1) && (y2<=tinggi)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
if (floor(x2)==lebar) || ...
(floor(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) + ...
26
b * F(p+1, q+1));
G(y, x) = intensitas;
end
else
G(y, x) = 0;
end
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7. Ketikan G = uint8(G);Di Line
8. Pilih dan ketik sintak
F = imread(‘D:Imagekotatua.png');
G = swirl(F);
9. Ketik imshow(G)untuk menampilkan gambar .
2.13 Transformasispherical
Transformasi spherical memberikan efek bulatan (bola), seperti melihat gambar
menggunakan lensa pembesar.
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = spheri(F, rho)
% SPHERI Berfungsi untukmelakukan transformasi 'spherical'
dimensi = size(F);
tinggi = dimensi(1);
lebar = dimensi(2);
xc = round(lebar / 2);
27
yc = round(tinggi / 2);
rmaks = xc; % 1/2 lebar gambar
for y=1 : tinggi
for x=1 : lebar
r = sqrt((x-xc)^2+(y-yc)^2);
z = sqrt(rmaks^2-r^2);
bx = (1 - 1/rho) * asin((x-xc)/...
sqrt((x-xc)^2+z^2));
by = (1 - 1/rho) * asin((y-yc)/...
sqrt((y-yc)^2+z^2));
if r <= rmaks
x2 = x - z * tan(bx);
y2 = y - z * tan(by);
else
x2 = x;
y2 = y;
end
if (x2=1) && (x2<=lebar) && ...
(y2=1) && (y2<=tinggi)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
if (floor(x2)==lebar) || ...
(floor(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
28
else
G(y, x) = 0;
end
end
end
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7.Ketikan G = uint8(G);Di Line
8.Pilih dan ketik sintak
F = imread(‘D:Imagekotatua.png');
G = spheri(F, 1.8);
9. Ketik imshow(G)untuk menampilkan gambar .
2.14 Transformasibilinear
Transformasi bilinear mempunyai fungsi pemetaan seperti berikut:
𝑥′
= 𝑎1 𝑥 + 𝑎2 𝑦 + 𝑎3 𝑥𝑦 + 𝑎4 (5.27)
𝑦′
= 𝑏1 𝑥 + 𝑏2 𝑦 + 𝑏3 𝑥𝑦 + 𝑏4 (5.28)
Transformasi ini termasuk dalam transformasi nonlinear mengingat terdapat pencampuran xy.
1. Buka Aplikasi Octave 3.6.3
2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung
mengetikan sintax pada jendela Octave 3.6.3 )
3. Ketik Sintax berikut pada Notepad .
function G = tbilin(F, a1, a2, a3, a4, b1, b2, b3, b4)
% Fungsi untuk melakukan transformasi bilinear
dimensi = size(F);
tinggi = dimensi(1);
29
lebar = dimensi(2);
for y=1 : tinggi
for x=1 : lebar
x2 = a1 * x + a2 * y + a3 * x * y + a4;
y2 = b1 * x + b2 * y + b3 * x * y + b4;
if (x2=1) && (x2<=lebar) && ...
(y2=1) && (y2<=tinggi)
% Lakukan interpolasi bilinear
p = floor(y2);
q = floor(x2);
a = y2-p;
b = x2-q;
if (floor(x2)==lebar) || ...
(floor(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
4. Buka kembali jendela Octave 3.6.3
5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3
6. Pilih edit lalu paste pada pilihan tersebut .
7.Ketikan G = uint8(G);Di Line
8.Pilih dan ketik sintak
30
F = imread(‘D:Imagekotatua.png');
G = tbilin(F, 1.2,0.1,0.005,-45,0.1,1,0.005,-30);
9. Ketik imshow(G)untuk menampilkan gambar .
31
BAB III
PENUTUP
3.1. Kesimpulan
Operasi geometrik adalah operasi pada citra yang dilakukan secara geometris seperti
translasi, rotasi, dan penyekalaan. Pada operasi seperti ini terdapat pemetaan geometrik, yang
menyatakan hubungan pemetaan antara piksel pada citra masukan dan piksel pada citra
keluaran.
3.2. Kritikdan saran
Dalam penulisan makalah ini jauh dari kata sempurna. Oleh karena itu penulis mengharapkan
saran dan kritik yang membangun dari para pembaca untuk meningkatkan kualitas dari isi
makalah ini dikemudian hari.
32
DAFTAR PUSTAKA
Kadir, Abdul & Adhi Susanto. (2013). Teori dan Aplikasi Pengolahan Citra. ANDI. Yogyakarta.

More Related Content

What's hot

Pcd 02 - bidang pengolahan citra
Pcd   02 - bidang pengolahan citraPcd   02 - bidang pengolahan citra
Pcd 02 - bidang pengolahan citra
Febriyani Syafri
 
Bab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalBab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijital
Syafrizal
 
01_PENGANTAR DATA DATA SCIENCE.pptx
01_PENGANTAR DATA DATA SCIENCE.pptx01_PENGANTAR DATA DATA SCIENCE.pptx
01_PENGANTAR DATA DATA SCIENCE.pptx
melrideswina
 
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidelPenyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
BAIDILAH Baidilah
 
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptAljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
rahmawarni
 
Sistem Persamaan Linear
 Sistem Persamaan Linear Sistem Persamaan Linear
Sistem Persamaan Linear
Rizky Wulansari
 
Regresi Kuadrat Terkecil
Regresi Kuadrat TerkecilRegresi Kuadrat Terkecil
Regresi Kuadrat Terkecil
indra herlangga
 
Makalah n-queen problem
Makalah n-queen problemMakalah n-queen problem
Makalah n-queen problem
Eghan Jaya
 
Pertemuan 3 relasi & fungsi
Pertemuan 3 relasi & fungsiPertemuan 3 relasi & fungsi
Pertemuan 3 relasi & fungsi
aansyahrial
 

What's hot (20)

Matriks eselon baris dan eselon baris tereduksi
Matriks eselon baris dan eselon baris tereduksiMatriks eselon baris dan eselon baris tereduksi
Matriks eselon baris dan eselon baris tereduksi
 
12 regresi
12 regresi12 regresi
12 regresi
 
Iterasi jacobi
Iterasi jacobiIterasi jacobi
Iterasi jacobi
 
Pcd 02 - bidang pengolahan citra
Pcd   02 - bidang pengolahan citraPcd   02 - bidang pengolahan citra
Pcd 02 - bidang pengolahan citra
 
Bab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalBab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijital
 
01_PENGANTAR DATA DATA SCIENCE.pptx
01_PENGANTAR DATA DATA SCIENCE.pptx01_PENGANTAR DATA DATA SCIENCE.pptx
01_PENGANTAR DATA DATA SCIENCE.pptx
 
Bab 7. Aplikasi Integral ( Kalkulus 1 )
Bab 7. Aplikasi Integral ( Kalkulus 1 )Bab 7. Aplikasi Integral ( Kalkulus 1 )
Bab 7. Aplikasi Integral ( Kalkulus 1 )
 
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidelPenyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
Penyelesaian sistem persamaan linear dengan metode iterasi gauss seidel
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier Simultan
 
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.pptAljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
Aljabar linear:Kebebasan Linear, Basis, dan Dimensi.ppt
 
Metode Numerik Trapesium
Metode Numerik TrapesiumMetode Numerik Trapesium
Metode Numerik Trapesium
 
Metode numeris (s03) persamaan non linier simultan
Metode numeris (s03)   persamaan non linier simultanMetode numeris (s03)   persamaan non linier simultan
Metode numeris (s03) persamaan non linier simultan
 
Sistem Persamaan Linear
 Sistem Persamaan Linear Sistem Persamaan Linear
Sistem Persamaan Linear
 
Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
Regresi Kuadrat Terkecil
Regresi Kuadrat TerkecilRegresi Kuadrat Terkecil
Regresi Kuadrat Terkecil
 
Makalah n-queen problem
Makalah n-queen problemMakalah n-queen problem
Makalah n-queen problem
 
Diagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanDiagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi Penjualan
 
Pertemuan 3 relasi & fungsi
Pertemuan 3 relasi & fungsiPertemuan 3 relasi & fungsi
Pertemuan 3 relasi & fungsi
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )
 
1 data mining-dm2016
1 data mining-dm20161 data mining-dm2016
1 data mining-dm2016
 

Similar to Tutorial operasi geometrik menggunakan octave

Pengantar grafika1
Pengantar grafika1Pengantar grafika1
Pengantar grafika1
Hanz Skyblue
 
Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1
Ainun Najib
 
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdfASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
Dikywahyu5
 
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docxLaporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
komzud
 
Tugas Proyek Matematika
Tugas Proyek MatematikaTugas Proyek Matematika
Tugas Proyek Matematika
anggundiantriana
 
Operasi_Ketetanggaan_Piksel.pptx
Operasi_Ketetanggaan_Piksel.pptxOperasi_Ketetanggaan_Piksel.pptx
Operasi_Ketetanggaan_Piksel.pptx
Rizal682472
 

Similar to Tutorial operasi geometrik menggunakan octave (20)

Tugas mandiri pengolahan citra digital
Tugas mandiri pengolahan citra digitalTugas mandiri pengolahan citra digital
Tugas mandiri pengolahan citra digital
 
Pcd 5
Pcd 5Pcd 5
Pcd 5
 
Pcd 5 - untuk spada
Pcd 5 - untuk spadaPcd 5 - untuk spada
Pcd 5 - untuk spada
 
229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani
 
TM pengolahan citra digital
TM pengolahan citra digitalTM pengolahan citra digital
TM pengolahan citra digital
 
Ayuk pcd
Ayuk pcdAyuk pcd
Ayuk pcd
 
TM pengolahan citra digital
TM pengolahan citra digitalTM pengolahan citra digital
TM pengolahan citra digital
 
Pengantar grafika1
Pengantar grafika1Pengantar grafika1
Pengantar grafika1
 
Pcd topik1 - fundamental
Pcd   topik1 - fundamentalPcd   topik1 - fundamental
Pcd topik1 - fundamental
 
Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1Grafika 130631100018 ainun_najib_modul1
Grafika 130631100018 ainun_najib_modul1
 
Tutorial pengolahan citra menggunakan octave
Tutorial pengolahan citra menggunakan octaveTutorial pengolahan citra menggunakan octave
Tutorial pengolahan citra menggunakan octave
 
Segmentasi Citra Wajah Menggunakan Metode Level Set
Segmentasi Citra Wajah  Menggunakan Metode Level SetSegmentasi Citra Wajah  Menggunakan Metode Level Set
Segmentasi Citra Wajah Menggunakan Metode Level Set
 
Laporan koreksi geometri citra satelit landsat
Laporan koreksi geometri citra satelit landsatLaporan koreksi geometri citra satelit landsat
Laporan koreksi geometri citra satelit landsat
 
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdfASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
ASLI_ 16_MODUL PRAKTIKUM PENGOLAHAN CITRA DIGITAL v2023.pdf
 
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docxLaporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
Laporan tugasgrafikakomputer merancangbangun3ddenganopeng-ldanvb6.docx
 
Tugas Proyek Matematika
Tugas Proyek MatematikaTugas Proyek Matematika
Tugas Proyek Matematika
 
Makalah allin
Makalah allinMakalah allin
Makalah allin
 
Pcd 4
Pcd 4Pcd 4
Pcd 4
 
LN s04-machine vision-s2
LN s04-machine vision-s2LN s04-machine vision-s2
LN s04-machine vision-s2
 
Operasi_Ketetanggaan_Piksel.pptx
Operasi_Ketetanggaan_Piksel.pptxOperasi_Ketetanggaan_Piksel.pptx
Operasi_Ketetanggaan_Piksel.pptx
 

Recently uploaded

Recently uploaded (20)

Presentasi visi misi revisi sekolah dasar.pptx
Presentasi visi misi revisi sekolah dasar.pptxPresentasi visi misi revisi sekolah dasar.pptx
Presentasi visi misi revisi sekolah dasar.pptx
 
RENCANA + Link2 MATERI Training _PEMBEKALAN Kompetensi_PENGELOLAAN PENGADAAN...
RENCANA + Link2 MATERI  Training _PEMBEKALAN Kompetensi_PENGELOLAAN PENGADAAN...RENCANA + Link2 MATERI  Training _PEMBEKALAN Kompetensi_PENGELOLAAN PENGADAAN...
RENCANA + Link2 MATERI Training _PEMBEKALAN Kompetensi_PENGELOLAAN PENGADAAN...
 
MODUL AJAR MATEMATIKA KELAS 1 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 1 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 1 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 1 KURIKULUM MERDEKA.pdf
 
CONTOH LAPORAN PARTISIPAN OBSERVASI.docx
CONTOH LAPORAN PARTISIPAN OBSERVASI.docxCONTOH LAPORAN PARTISIPAN OBSERVASI.docx
CONTOH LAPORAN PARTISIPAN OBSERVASI.docx
 
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdfSusi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
 
LK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdf
LK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdfLK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdf
LK 1 - 5T Keputusan Berdampak (1). SDN 001 BU.pdf
 
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERILAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
LAPORAN EKSTRAKURIKULER SEKOLAH DASAR NEGERI
 
1. Standar Operasional Prosedur PPDB Pada paud
1. Standar Operasional Prosedur PPDB Pada paud1. Standar Operasional Prosedur PPDB Pada paud
1. Standar Operasional Prosedur PPDB Pada paud
 
Koneksi Antar Materi Modul 1.4.ppt x
Koneksi Antar Materi Modul 1.4.ppt           xKoneksi Antar Materi Modul 1.4.ppt           x
Koneksi Antar Materi Modul 1.4.ppt x
 
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
 
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKAMODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
 
Dokumen Tindak Lanjut Pengelolaan Kinerja Guru.docx
Dokumen Tindak Lanjut Pengelolaan Kinerja Guru.docxDokumen Tindak Lanjut Pengelolaan Kinerja Guru.docx
Dokumen Tindak Lanjut Pengelolaan Kinerja Guru.docx
 
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.comModul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
 
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.pptKOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
KOMITMEN MENULIS DI BLOG KBMN PB PGRI.ppt
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
 
tugas modul 1.4 Koneksi Antar Materi (1).pptx
tugas  modul 1.4 Koneksi Antar Materi (1).pptxtugas  modul 1.4 Koneksi Antar Materi (1).pptx
tugas modul 1.4 Koneksi Antar Materi (1).pptx
 
Modul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptx
Modul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptxModul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptx
Modul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptx
 

Tutorial operasi geometrik menggunakan octave

  • 1. 1 TUGAS MANDIRI Tutorial Operasi Geometrik Mata Kuliah: Pengolahan Citra Digital l 130210097 : Rina Permata Sari Kode Kelas : 142-T128P-M5 Dosen : Cosmas Eko Suharyanto PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PUTERA BATAM 2015
  • 2. 2 KATA PENGANTAR ِِ‫م‬ْ‫ي‬ ِ‫ح‬ ْ‫الر‬ ِ‫من‬ْ‫ح‬ ‫ه‬‫الر‬ ِ ‫ه‬‫اَّلل‬ ِ‫م‬ْ‫س‬ِ‫ب‬ Assalamu’alaikum Wr.Wb Puji syukur kami panjatkan ke hadirat Allah Subhanahu wata’ala, karena berkat rahmat-Nya kami dapat menyelesaikan makalah yang berjudul “Tutorial Operasi Geometrik. Makalah ini diajukan guna memenuhi tugas mata kuliah Pengolahan Citra Digital. Kami mengucapkan terima kasih kepada semua pihak yang telah membantu sehingga makalah ini dapat diselesaikan sesuai dengan waktunya. Makalah ini masih jauh dari sempurna. Oleh karena itu kami mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan makalah ini. Semoga makalah ini memberikan informasi bagi masyarakat dan bermanfaat untuk pengembangan ilmu pengetahuan bagi kita semua. Batam, Juni 2015 Penulis Kelompok
  • 3. 3 DAFTAR ISI KATA PENGANTAR........................................................................................................................ 2 DAFTAR ISI................................................................................................................................ 3 BAB I..........................................................................................................................................4 PENDAHULUAN........................................................................................................................ 4 1.1 Penagantar Pengolahan Citra...................................................................................................4 BAB II.........................................................................................................................................5 PEMBAHASAN .......................................................................................................................... 5 2.1 Penggeseran citra .................................................................................................................... 5 2.2 Pemutaran citra....................................................................................................................... 6 2.3 Interpolasi piksel..................................................................................................................... 8 2.4 Pemutaran citra berdasarkan sebarang koordinat .......................................................................9 2.5 Pemutaran citra secara utuh ................................................................................................... 11 2.6 Pembesaran citra................................................................................................................... 13 2.7 Pengecilan citra..................................................................................................................... 15 2.8 Pembesaran citra dengan skala vertikal dan horizontal............................................................. 16 2.9 Pencerminan citra.................................................................................................................. 18 2.10 Transformasi affine ............................................................................................................. 19 2.11 Efek ripple .......................................................................................................................... 23 2.12 Efek twirl............................................................................................................................ 24 2.13 Transformasi spherical......................................................................................................... 26 2.14 Transformasi bilinear........................................................................................................... 28 BAB III........................................................................................................................................ 31 PENUTUP ................................................................................................................................... 31 3.1. Kesimpulan.......................................................................................................................... 31 3.2. Kritik dan saran.................................................................................................................... 31 DAFTAR PUSTAKA....................................................................................................................... 32
  • 4. 4 BAB I PENDAHULUAN 1.1 PengantarPengolahanCitra Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu. Pengolahan citra merupakan bidang yang bersifat multidisiplin, yang terdiri dari banyak aspek, antara lain fisika, elektronika, matematika, seni dan teknologi komputer. Pengolahan citra (image processing) memiliki hubungan yang sangat erat dengan disiplin ilmu yang lain. jika sebuah ilmu disiplin ilmu dinyatakan dengan bentuk proses suatu input menjadi output, maka pengolahan citra memiliki input berupa citra serta output juga berupa citra. Secara umum, istilah pengolahan citra digital menyatakan “pemrosesan gambar berdimensi- dua melalui komputer digital” (Jain, 1989). Menurut Efford (2000), pengolahan citra adalah istilah umum untuk berbagai teknik yang k eberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara. Foto adalah contoh gambar berdimensi dua yang bisa diolah dengan mudah.Setiap foto dalam bentuk citra digital (misalnya berasal dari kamera digital) dapat diolah melalui perangkat-lunak tertentu. Operasi geometrik adalah operasi pada citra yang dilakukan secara geometris seperti translasi, rotasi, dan penyekalaan. Pada operasi seperti ini terdapat pemetaan geometrik, yang menyatakan hubungan pemetaan antara piksel pada citra masukan dan piksel pada citra keluaran. Secara prinsip, terdapat dua cara yang dapat dipakai. Pertama yaitu pemetaan ke depan dan kedua berupa pemetaan ke belakang.
  • 5. 5 BAB II PEMBAHASAN 2.1 Penggeserancitra Penggeseran citra ke arah mendatar atau vertikal dapat dilaksanakan dengan mudah. Rumus yang digunakan sebagai berikut: 𝑥 𝑏𝑎𝑟𝑢 = 𝑥 𝑙𝑎𝑚𝑎 + 𝑠 𝑥 (5.1) 𝑦 𝑏𝑎𝑟𝑢 = 𝑦𝑙𝑎𝑚𝑎 + 𝑠 𝑦 (5.2) Untuk penyederhanaan pembahasan, sx dan sy dianggap bertipe bilangan bulat. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . F = imread(‘D:Imagekelompok.jpg); [tinggi, lebar] = size(F); sx = 45; % Penggesaran arah horisontal sy = -35; % Penggesaran arah vertikal 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
  • 6. 6 end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . Gambar. Contoh penggeseran citra 2.2 Pemutaran citra Suatu citra dapat diputar dengan sudut 𝜃 seiring arah jarum jam atau berlawanan arah jarum jam dengan pusat putaran pada koordinat (0,0). Gambar 5.3 menjelaskan bentuk pemutaran citra. Adapun rumus yang digunakan untuk memutar citra dengan sudut 𝜃 berlawanan arah jam berupa: 𝑥 𝑏𝑎𝑟𝑢 = 𝑥 ∗ 𝐶𝑜𝑠( 𝜃) + 𝑦 ∗ 𝑆𝑖𝑛( 𝜃) (5.3) 𝑦 𝑏𝑎𝑟𝑢 = 𝑦 ∗ 𝐶𝑜𝑠( 𝜃) − 𝑥 ∗ 𝑆𝑖𝑛(𝜃) (5.4) Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad .
  • 7. 7 F = imread(‘D:Imagegedung.jpg’); [tinggi, lebar] = size(F); sudut = 10; % Sudut pemutaran 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 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . Gambar. Contohpemutarancitra
  • 8. 8 2.3 Interpolasi piksel Hasil pemutaran citra menggunakan rotasi.m menimbulkan efek bergerigi pada objek citra. Hal itu diakibatkan oleh penggunaan nilai intensitas didasarkan pada piksel tetangga terdekat, yang dilakukan melalui: x2 = round(x * cosa + y * sina); y2 = round(y * cosa - x * sina); Penggunaan fungsi round (pembulatan ke atas) merupakan upaya untuk menggunakan intensitas piksel terdekat. Alternatif lain dilakukan dengan menggunakan floor (pembulatan ke bawah). Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . F = imread(‘D:Imagegedung.png'); [tinggi, lebar] = size(F); sudut = 15; % Sudut pemutaran 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) % Lakukan interpolasi bilinear p = floor(y2); q = floor(x2); a = y2-p; b = x2-q;
  • 9. 9 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 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . 2.4 Pemutaran citra berdasarkansebarang koordinat Operasi pemutaran citra dapat dilakukan dengan pusat di mana saja; tidak harus dari (0, 0). Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . F = imread(‘D:Imagepintu.jpg); [tinggi, lebar] = size(F);
  • 10. 10 sudut = 10; % Sudut pemutaran 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 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . Gambar. Contoh Pemutaran citra berdasarkan sebarang koordinat
  • 11. 11 2.5 Pemutaran citra secara utuh Pada seluruh contoh yang telah diberikan, ada bagian gambar yang hilang ketika pemutaran dilaksanakan. Namun, adakalanya dihendaki agar pemutaran citra tidak membuat ada bagian citra asli hilang. Untuk keperluan ini, ukuran citra hasil pemutaran harus diubah sesuai dengan sudut putaran. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . F = imread(‘D:Imagepintu.jpg); [tinggi, lebar] = size(F); sudut = 45; % Sudut pemutaran rad = pi * sudut/180; cosa = cos(rad); sina = sin(rad); x11 = 1; y11 = 1; x12 = lebar; y12 = 1; x13 = lebar; y13 = tinggi; x14 = 1; y14 = tinggi; m = floor(tinggi/2); n = floor(lebar/2); % Menentukan pojok x21 = ((x11-n) * cosa + (y11-m) * sina + n); y21 = ((y11-m) * cosa - (x11-n) * sina + m); x22 = ((x12-n) * cosa + (y12-m) * sina + n); y22 = ((y12-m) * cosa - (x12-n) * sina + m); x23 = ((x13-n) * cosa + (y13-m) * sina + n);
  • 12. 12 y23 = ((y13-m) * cosa - (x13-n) * sina + m); x24 = ((x14-n) * cosa + (y14-m) * sina + n); y24 = ((y14-m) * cosa - (x14-n) * sina + m); ymin = min([y21 y22 y23 y24]); xmin = min([x21 x22 x23 x24]); ymak = max([y21 y22 y23 y24]); xmak = max([x21 x22 x23 x24]); lebar_baru = xmak - xmin + 1; tinggi_baru = ymak - ymin + 1; tambahan_y = floor((tinggi_baru-tinggi)/2); tambahan_x = floor((lebar_baru-lebar)/2); F2=zeros(tinggi_baru, lebar_baru); for y=1 : tinggi for x=1 : lebar F2(y+tambahan_y, x+tambahan_x) = F(y, x); end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line selanjutnya dan figure(1); imshow(G);untuk menampilkan hasil penggeseran Citra tersebut
  • 13. 13 . 2.6 Pembesarancitra Suatu citra dapat diperbesar dengan membuat setiap piksel menjadi beberapa piksel. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = perbesar(berkas, sy,sx) F = imread(berkas); [tinggi, lebar] = size(F); tinggi_baru = tinggi * sy; lebar_baru = lebar * sx; F2 = double(F); for y=1 : tinggi_baru y2 = ((y-1) / sy) + 1; for x=1 : lebar_baru x2 = ((x-1) / sx) + 1; G(y, x) = F(floor(y2), floor(x2)); Gambar. Contoh Pemutaran utuh
  • 14. 14 end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line 8. Selanjutnya ketik Img = perbesar('D:Imagegerbang.jpg', 3, 3); 9. Dan imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . Gambar. Contoh Pembesaran Citra
  • 15. 15 2.7 Pengecilancitra Bagaimana kalau ingin memperkecil citra? Secara prinsip, pengecilan citra berarti mengurangi jumlah piksel. Algoritma yang digunakan untuk mewujudkan perbesar.m maupun perbesar2.m dapat digunakan untuk keperluan ini dengan m berupa bilangan pecahan seperti 1/2, ¼, 1/8, dan seterusnya. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = perbesar(berkas, sy,sx) F = imread(berkas); [tinggi, lebar] = size(F); tinggi_baru = tinggi * sy; lebar_baru = lebar * sx; F2 = double(F); for y=1 : tinggi_baru y2 = ((y-1) / sy) + 1; for x=1 : lebar_baru x2 = ((x-1) / sx) + 1; G(y, x) = F(floor(y2), floor(x2)); end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line 8. Selanjutnya ketik Img = perbesar2(‘D:Imagegerbang.jpg, 0.5, 0.5);
  • 16. 16 9. Dan imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . 2.8 Pembesarancitra dengan skala vertikaldan horizontal Fungsi perbesar dan perbesar2 dapat digunakan untuk melakukan perbesaran/pengecilan dengan skala horizontal dan vertikal yang berbeda. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) Gambar. Contoh memperkecil citra
  • 17. 17 3. Ketik Sintax berikut pada Notepad . function G = perbesar(berkas, sy,sx) F = imread(berkas); [tinggi, lebar] = size(F); tinggi_baru = tinggi * sy; lebar_baru = lebar * sx; F2 = double(F); for y=1 : tinggi_baru y2 = ((y-1) / sy) + 1; for x=1 : lebar_baru x2 = ((x-1) / sx) + 1; G(y, x) = F(floor(y2), floor(x2)); end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Selanjutnya ketik Img = perbesar(‘D:Imagesuasana.jpg, 0.5, 2.5); 8. Dan imshow(G);untuk menampilkan hasil penggeseran Citra tersebut . Gambar. Contoh besar vertical dan Horisontal
  • 18. 18 2.9 Pencerminancitra Pencerminan yang umum dilakukan berupa pencerminan secara vertikal dan pencerminan secara horizontal. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = cerminh(F) [tinggi, lebar] = size(F); for y=1 : tinggi for x=1 : lebar x2 = lebar - x + 1; y2 = y; G(y, x) = F(y2, x2); end end end Atau function H = cerminv(F) [tinggi, lebar] = size(F); for y=1 : tinggi for x=1 : lebar x2 = x; y2 = tinggi - y + 1; G(y, x) = F(y2, x2); end end end
  • 19. 19 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line 8. Ketik F = imread(‘D:Imagekelompok.jpg); untuk membaca gambar . 9. Ketik G = cerminh(F); imshow(G) atau G = cerminv(F); imshow(G) untuk menampilkan gambar . 2.10 Transformasiaffine Transformasi affine adalah transformasi linear yang menyertakan penskalaan, pemutaran, penggeseran, dan shearing (pembengkokan). Transformasi affine dapat dinyatakan dengan persamaan seperti berikut: [ 𝑥′ 𝑦′ ] = [ 𝑎11 𝑎12 𝑎21 𝑎22 ] [ 𝑥 𝑦] + [ 𝑡 𝑥 𝑡 𝑦 ] (5.10) Persamaan di atas dapat ditulis pula menjadi seperti berikut: Gambar. Contoh pencerminan citra
  • 20. 20 [ 𝑥′ 𝑦′ 1 ] = [ 𝑎11 𝑎12 𝑡 𝑥 𝑎21 𝑎22 𝑡 𝑦 0 0 1 ] [ 𝑥 𝑦 1 ] (5.11) Berdasarkan persamaan di atas, terlihat bahwa transformasi affine memiliki enam derajat kebebasan: dua untuk translasi (tx dan ty) dan empat buah untuk rotasi, penskalaan, stretching, dan shearing (a11, a12, a21, dan a22). Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = taffine(F, a11, a12, a21, a22, tx, ty) [tinggi, lebar] = size(F); for y=1 : tinggi for x=1 : lebar x2 = a11 * x + a12 * y + tx; y2 = a21 * x + a22 * y + ty; if (x2>=1) && (x2<=lebar) && ... (y2>=1) && (y2<=tinggi) % Lakukan interpolasi bilinear p = floor(y2); q = floor(x2); a = y2-p; b = x2-q; if (floor(x2)==lebar) || ... (floor(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));
  • 21. 21 G(y, x) = intensitas; end else G(y, x) = 0; end end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line 8. Pilih dan ketik sintak berikut sesuai dengan keinginan . Contoh penggunaan fungsi taffine untuk melakukan pembengkokan: F = imread(‘D:Imagekelompok.jpg); G = taffine(F,1,0.15,0,1,0,0); imshow(G) Contoh berikut digunakan untuk memutar gambar: rad = 10 * pi / 180; G = taffine(F,cos(rad),sin(rad), … -sin(rad),cos(rad),0,0); imshow(G) Contoh penggabungan rotasi dan translasi: G = taffine(F,cos(rad),sin(rad),-sin(rad), … cos(rad),-30,-50); Contoh penggabungan rotasi, penskalaan, dan translasi:
  • 22. 22 G = taffine(F,2 * cos(rad),sin(rad),-sin(rad), … 2 * cos(rad),-30,-50); Perlu diketahui, angka seperti 2 di depan cos(rad) menyatakan bahwa hasilnya adalah kebalikannya, yaitu ½ kalinya. Gambar. Contoh effek Taffine
  • 23. 23 2.11 Efek ripple Efek ripple (riak) adalah aplikasi transformasi citra yang membuat gambar terlihat bergelombang. Efek riakdapaat dibuat baik pada arah x maupun y. Transformasinya seperti berikut: 𝑥 = 𝑥′ + 𝑎 𝑥 𝑠𝑖𝑛 2𝜋𝑦′ 𝑇𝑥 (5.12) 𝑦 = 𝑦′ + 𝑎 𝑦 𝑠𝑖𝑛 2𝜋𝑥′ 𝑇𝑦 (5.13) Dalam hal ini, ax dan ay menyatakan amplitudoriak gelombang sinus, sedangkan Tx dan Ty menyatakan periode gelombang sinus. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = ripple(F, ax, ay, tx, ty) % RIPPLE Berfungsi untuk melakukan transformasi 'ripple'. dimensi = size(F); tinggi = dimensi(1); lebar = dimensi(2); for y=1 : tinggi for x=1 : lebar x2 = x + ax * sin(2 * pi * y / tx); y2 = y + ay * sin(2 * pi * x / ty); if (x2=1) && (x2<=lebar) && ... (y2=1) && (y2<=tinggi) % Lakukan interpolasi bilinear p = floor(y2); q = floor(x2); a = y2-p; b = x2-q;
  • 24. 24 if (floor(x2)==lebar) || ... (floor(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 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7.Ketikan G = uint8(G); Di Line 8.Pilih dan ketik sintak F = imread(‘D:imagegedung.png'); G = ripple(F,10,15,120, 250); 9. Ketik imshow(G)untuk menampilkan gambar . 2.12 Efek twirl Transformasi twirl(olak atau puntiran) dilakukan dengan memutar citra berdasarkan titik pusat citra, tetapi tidak bersifat linear. Turorialnya adalah sebagai berikut : 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 )
  • 25. 25 3. Ketik Sintax berikut pada Notepad . function G = twirl(F) % TWIRL Berfungsi untuk melakukan transformasi 'twirl' dimensi = size(F); tinggi = dimensi(1); lebar = dimensi(2); xc = round(lebar / 2); yc = round(tinggi / 2); alpha = 43 * pi / 180; rmaks = 0.5 * sqrt(xc^2 + yc ^ 2); % 1/2 diagonal citra for y=1 : tinggi for x=1 : lebar r = sqrt((x-xc)^2+(y-yc)^2); beta = atan2(y-yc, x-xc) + … alpha * (rmaks - r) / rmaks; x2 = xc + r * cos(beta); y2 = yc + r * sin(beta); if (x2=1) && (x2<=lebar) && ... (y2=1) && (y2<=tinggi) % Lakukan interpolasi bilinear p = floor(y2); q = floor(x2); a = y2-p; b = x2-q; if (floor(x2)==lebar) || ... (floor(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) + ...
  • 26. 26 b * F(p+1, q+1)); G(y, x) = intensitas; end else G(y, x) = 0; end end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7. Ketikan G = uint8(G);Di Line 8. Pilih dan ketik sintak F = imread(‘D:Imagekotatua.png'); G = swirl(F); 9. Ketik imshow(G)untuk menampilkan gambar . 2.13 Transformasispherical Transformasi spherical memberikan efek bulatan (bola), seperti melihat gambar menggunakan lensa pembesar. 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = spheri(F, rho) % SPHERI Berfungsi untukmelakukan transformasi 'spherical' dimensi = size(F); tinggi = dimensi(1); lebar = dimensi(2); xc = round(lebar / 2);
  • 27. 27 yc = round(tinggi / 2); rmaks = xc; % 1/2 lebar gambar for y=1 : tinggi for x=1 : lebar r = sqrt((x-xc)^2+(y-yc)^2); z = sqrt(rmaks^2-r^2); bx = (1 - 1/rho) * asin((x-xc)/... sqrt((x-xc)^2+z^2)); by = (1 - 1/rho) * asin((y-yc)/... sqrt((y-yc)^2+z^2)); if r <= rmaks x2 = x - z * tan(bx); y2 = y - z * tan(by); else x2 = x; y2 = y; end if (x2=1) && (x2<=lebar) && ... (y2=1) && (y2<=tinggi) % Lakukan interpolasi bilinear p = floor(y2); q = floor(x2); a = y2-p; b = x2-q; if (floor(x2)==lebar) || ... (floor(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
  • 28. 28 else G(y, x) = 0; end end end 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7.Ketikan G = uint8(G);Di Line 8.Pilih dan ketik sintak F = imread(‘D:Imagekotatua.png'); G = spheri(F, 1.8); 9. Ketik imshow(G)untuk menampilkan gambar . 2.14 Transformasibilinear Transformasi bilinear mempunyai fungsi pemetaan seperti berikut: 𝑥′ = 𝑎1 𝑥 + 𝑎2 𝑦 + 𝑎3 𝑥𝑦 + 𝑎4 (5.27) 𝑦′ = 𝑏1 𝑥 + 𝑏2 𝑦 + 𝑏3 𝑥𝑦 + 𝑏4 (5.28) Transformasi ini termasuk dalam transformasi nonlinear mengingat terdapat pencampuran xy. 1. Buka Aplikasi Octave 3.6.3 2. Buka aplikasi Notepad pada windows ( Langkah ini bisa dilewati apabila ingin langsung mengetikan sintax pada jendela Octave 3.6.3 ) 3. Ketik Sintax berikut pada Notepad . function G = tbilin(F, a1, a2, a3, a4, b1, b2, b3, b4) % Fungsi untuk melakukan transformasi bilinear dimensi = size(F); tinggi = dimensi(1);
  • 29. 29 lebar = dimensi(2); for y=1 : tinggi for x=1 : lebar x2 = a1 * x + a2 * y + a3 * x * y + a4; y2 = b1 * x + b2 * y + b3 * x * y + b4; if (x2=1) && (x2<=lebar) && ... (y2=1) && (y2<=tinggi) % Lakukan interpolasi bilinear p = floor(y2); q = floor(x2); a = y2-p; b = x2-q; if (floor(x2)==lebar) || ... (floor(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 4. Buka kembali jendela Octave 3.6.3 5. Klik kanan pada bagian tepi atas Jendela Octave 3.6.3 6. Pilih edit lalu paste pada pilihan tersebut . 7.Ketikan G = uint8(G);Di Line 8.Pilih dan ketik sintak
  • 30. 30 F = imread(‘D:Imagekotatua.png'); G = tbilin(F, 1.2,0.1,0.005,-45,0.1,1,0.005,-30); 9. Ketik imshow(G)untuk menampilkan gambar .
  • 31. 31 BAB III PENUTUP 3.1. Kesimpulan Operasi geometrik adalah operasi pada citra yang dilakukan secara geometris seperti translasi, rotasi, dan penyekalaan. Pada operasi seperti ini terdapat pemetaan geometrik, yang menyatakan hubungan pemetaan antara piksel pada citra masukan dan piksel pada citra keluaran. 3.2. Kritikdan saran Dalam penulisan makalah ini jauh dari kata sempurna. Oleh karena itu penulis mengharapkan saran dan kritik yang membangun dari para pembaca untuk meningkatkan kualitas dari isi makalah ini dikemudian hari.
  • 32. 32 DAFTAR PUSTAKA Kadir, Abdul & Adhi Susanto. (2013). Teori dan Aplikasi Pengolahan Citra. ANDI. Yogyakarta.