hasil dan pembahsan
-
Upload
dewa-alit-sujana -
Category
Documents
-
view
221 -
download
0
description
Transcript of hasil dan pembahsan
Hasil
1. Grayscale a. Scrip Program
b. Gambar
2. Pergeseran Citraa. Scrip Program
b. Gambar
3. Pemutaran Citraa. Scrip Program
b. Gambar
4. Interpolasi Citraa. Scrip Program
b. Gambar
5. Pembesaran Citraa. Scrip Program
Pembahasan
1. Gray Scale 2. Pergeseran Citra
Penggeseran citra ke arah mendatar atau vertikal dapat dilaksanakan dengan mudah. Rumus yang digunakan sebagai berikut:
Input Gambar.
Cara menginput gambar dengan perintah imread. Tulis gambar yang ingin di input dengan menuliskan directory penyimpanan gambar, misalnya pada program dibawah:
F = imread('D:\coin.png');
gambar ini disimpan di drive D, dengan nama coin.png. selanjutnya mementukan ukuran gambar (panjang, lebar), perintah yang digunakan adalah size,
[tinggi, lebar] = size(F); perintah ini digunakan untuk menentukan ukuran gambar yang akan kita gunakan dalam program.
tentukan besar pergeseran
menentukan besar pergeseran dari bidang horizontal (sx), dan pergeseran pertikal (y).
Tanda … menyatakan bahwa perintah pada baris tersebut masih mempunyai lanjutan pada baris berikutnya.
Tanda : berarti semua nilai.
double dipakai untuk melakukan konversi dari tipe bilangan bulat 8 bit (uint8) ke tipe double (yang memungkinkan pemrosesan bilangan real berpresisi ganda).
uint8 berguna untuk mengonversi dari tipe double ke uint8 (tipe bilangan bulat 8 bit).
buat gambar menjadi ganda dengan perintah double, F2 = double(F); kemudian buat semua pertama menjadi nol, yaitu menjadi gambar menjadi hitam dengan menjadikan semua nilai piksel nol.
G = zeros(size(F2));
selanjutnya kita misalkan nilai x dan nilai y. misalkan nilai y=1 : tinggi, x=1, lebar. jika lebar gambar yang lama adalah >= 1 , dan/atau lebar lama <= lebar baru. Dan tinggi lama >=1 dan atau tinggi lama <=tinggi baru. Setelah itu kita mendapatkan gambar baru yaitu G, setelah itu kita hentika program dengan end, untuk menampilkan gambar hasil pengolahan kita gunakan perintah imshow. fungsi figure adalah untuk menampilkan nilai matrik pada sebuah citra. Pada tahap akhir kita tampilkan kedua gambar yang sudah kita olah tadi. Yaitu F dan G, F da G ini akan tampil dalam satu file, sehingga terlihat pergeseran gambar yang kita olah. Fungsi Clear all adalah untuk menghapus segalanya: variabel, GLOBALS, fungsi, link, dll
3. Perputaran Citra
Suatu citra dapat diputar dengan sudut seiring arah jarum jam atau berlawanan arah jarum
jam dengan pusat putaran pada koordinat (0,0). Langkah pertamaMasukan gambar F = imread('D:\2.jpg');[tinggi, lebar] = size(F);
Tentukan sudut perputaran, dengan perintah
sudut = 10; % Sudut pemutaran
tentukan nilai rad, cosa dan sina untuk memutar pada masing-masing sumbu (x dan y).
rad = pi * sudut/180;
cosa = cos(rad);
sina = sin(rad);
Buat gambar menjadi memiliki nilai ganda : F2 = double(F);
Untuk y=1:tinggi dan x=1: lebar, menentukan besar perputaran x2 dari x dengan rumus,
x2 = round(x * cosa + y * sina);
y2 = round(y * cosa - x * sina);
jika perpindahan lebar (x2) >=1 dan atau (x2 <=lebar) dan atau perputaran tinggi y2 >=1 dan atau y2<=tinggi, maka gambar setelah diputar menjadi G(y, x) = F2(y2, x2); berarti perputaran gambar adalah gambar semual dikali dengan perputaran terhadap sumbu horizontal dan sumbu vertical. Fungsi eng akan mengakhiri prose.
Tampilkan gambar hasil pengolahan dengan perintah
G = uint8(G);
figure(1); imshow(G);
clear all;
Fungsi Clear all adalah untuk menghapus segalanya: variabel, GLOBALS, fungsi, link, dll.
Berdasarkan program diatas pemutaran citra dengan sudut θ searah jarum jam dapat dilakukan. Caranya, dengan menggunakan x dan y sebagai posisi baru dan xbaru justru sebagai posisi lama. Pada saat menghitung dengan rumus di atas, apabila posisi koordinat (ybaru ,xbaru) berada di luar area [1, lebar] dan [1, tinggi], intensitas yang digunakan berupa nol.
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).
Operasi pemutaran citra dapat dilakukan dengan pusat di mana saja; tidak harus dari (0, 0). Rumus untuk melakukan pemutaran berlawanan arah jarum jam sebesar
4. Interpolasi Citra Input gambar yang ingin diolah,
F = imread('C:\acd\charmander.jpg');Ukuran=size(F);tinggi=Ukuran(1);
lebar=Ukuran(2);
tentukan sudut pemutar, dalam program ini digunakan sudut pemutar= 5;
rad=pi*sudut/180;
cosa=cos(rad);
sina=sin(rad);
F2= double(F);
Seperti yang sudah dijelaskan diatas fungsi
m= floor(tinggi/2); adalah pembulatan bilangan bulat terbesar yang tidak melebihi bilai( tinggi/2).
N=floor(lebar/2); adalah pembulatan bilangan bulat terbesar yang tidak melebihi nilai (lebar/2);
Perlu untuk mengetahui tinggi dan lebar yang baru dengan :
x2 = (x-n)*cosa+(y-m)*sina+n;
y2 = (y-m)*cosa-(x-n)*sina+m;
kemudia lakukan interpolasi bilinear:
p= floor(y2);
q= floor(x2);
a=y2-p;
b=x2-q;
tentukan intensitas :
intensitas =(1-a)*((1-b)*F(p,q)+...
b*F(p,q+1))+...
a*((1-p)*F(p+1,q)+...
b*F(p+1,q+1));
G(y,x)=intensitas;
Fungsi end mengakhiri program utama dan sub programnya.
Tampilkan gambar dengan :
G = uint8(G);
figure(1);imshow(G);
clear all;
pada program ini besar sudut pemutar sangat berpengaruh. Jadi kita tinggal menentukan besar sudut yang kita inginkan.
5. Pembesaran Citra
perbesaran sebuah citra dapat dilakukan sampai beberapa piksel.,
input gambar,
F = imread('D:\6.jpg');
Ukuran = size(F);
tinggi=Ukuran(1);
lebar = Ukuran(2);
tentukan sy dan sx, sebagai besarnya pembesaran. Missal
sx = 2;% Penggeseran arah horizontal
sy = 2; % Penggeseran arah vertical
tentukan tinggi dan lebar baru,
tinggi_baru = tinggi*sy;
lebar_baru = lebar*sx;
F2 = double(F);
double dipakai untuk melakukan konversi dari tipe bilangan bulat 8 bit (uint8) ke tipe double (yang memungkinkan pemrosesan bilangan real berpresisi ganda).
Menentukan ukuran citra baru,
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
tampilkan gambar hasil pengolahan dengan perintah berikut :
G = uint8(G);
figure(1); imshow(G);
clear all;