hasil dan pembahsan

14
Hasil 1. Grayscale a. Scrip Program b.Gambar

description

test

Transcript of hasil dan pembahsan

Page 1: hasil dan pembahsan

Hasil

1. Grayscale a. Scrip Program

b. Gambar

Page 2: hasil dan pembahsan

2. Pergeseran Citraa. Scrip Program

b. Gambar

Page 3: hasil dan pembahsan

3. Pemutaran Citraa. Scrip Program

Page 4: hasil dan pembahsan

b. Gambar

4. Interpolasi Citraa. Scrip Program

Page 5: hasil dan pembahsan
Page 6: hasil dan pembahsan

b. Gambar

5. Pembesaran Citraa. Scrip Program

Page 7: hasil dan pembahsan

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.

Page 8: hasil dan pembahsan

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

Page 9: hasil dan pembahsan

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

Page 10: hasil dan pembahsan

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);

Page 11: hasil dan pembahsan

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;