Anda di halaman 1dari 17

UNIVERSITAS GUNADARMA

FAKULTAS TEKNOLOGI INDUSTRI

PENGANTAR PENGOLAHAN CITRA


Operasi Geometri (Translasi, Rotasi, Flipping, Scalling)
KELOMPOK 6:
-

ABDUL MAJID RIJA

(50411020)

OKVRIN BELDA S

(55411458)

MUMHANA ARTANTI

(55411034)

EMAN SULAEMAN

(52411423)

ANUGERAH BINTANG P

(50411994)

YUDISTIRA NARA Z

(57411631)

Dosen : Dr. Bertalya, SKom, DEA.


Universitas Gunadarma
2014
OPERASI GEOMETRI PADA CITRA

Flipping, Translasi, Rotasi, Penskalaan

1.

Flipping (Pencerminan)

Operasi Pencerminan merupakan salah satu operasi geometri yang paling sederhana ,
karena tidak terjadi perubahan ukuran citra dan hasil pemetaan selalu menghasilkan
koordinat titik berupa bilangan bulat, sehingga tidak memerlukan interpolasi nilai keabuan.
Efek operasi pencerminan adalah berubahnya orientasi citra baik secara horisontal, vertikal,
maupun gabungan keduanya. Pada pencerminan secara horisontal, koordinat y tetap,
sedangkan koordinat x dicerminkan. Rumus yang digunakan untuk mencerminkan
koordinat x terhadap sumbu y adalah :
x = -x
Karena koordinat hasil (x) bernilai nol atau positif, maka koordinat asal (x) yang diperoleh
dari rumus tersebut akan bernilai negatif. Oleh karena itu rumus tersebut dimodifikasi agar
x selalu positif. Hal ini dilakukan dengan melakukan pencerminan terhadap garis vertikal di
tengah citra (pada koordinat xc)
Flipping adalah operasi pencerminan (image reflection).
Ada 2 macam flipping : horisontal dan vertikal
a. Asli b. flip horizontal c. flip vertikal
Flipping horizontal adalah pencerminan pada sumbu Y (cartesian) dari citra A menjadi citra
B, yang diberikan oleh
B[x][y] = A[N-x][y]
Flipping vertikal adalah pencerminan pada sumbu X (cartesian) dari citra A menjadi citra B,
yang diberikah oleh
B[x][y] = A[x][M-y]
Pencerminan pada titik asal (cartesian) dari citra A menjadi citra B :

B[x][y] = A[N-x][M-y]
Pencerminan pada garis x=y dari citra A menjadi citra B :
B[x][y] = A[y][x]
void translasi(Citra A, Citra B,int N,int M)
/* flipping vertikal (pencerminan terhadap sumbu x)
*/
{ int i, j, k;
k=M-1
for (i=0; i<=N-1; i++)
{
for (j=0; j<=M-1; j++)
{
B[k][j]=A[i][j];
}
k--;
}
}
2.

Operasi cropping (Tanslasi)

Cropping adalah memotong satu bagian dari citra sehinggga diperoleh citra yang berukuran
lebih kecil. Operasi ini pada dasarnya adalah operasi translasi, yaitu menggeser koordinat
titik citra. Rumus yang digunakan untuk operasi ini adalah :
x = x xL untuk x = xL sampai xR
y = y yL untuk y = xT sampai xB
(xL,yT) dan (xR,yB), masing-masing adalah koordinat titik pojok kiri atas dan pojok kanan
bawah bagian citra yang hendak di-crop.

Ukuran citra berubah menjadi


h = yB - yT
dan transformasi baliknya adalah ;
x = x + xL untuk x = 0 sampai w-1
y = y + xT untuk y = 0 sampai h-1
void translasi(Citra A, Citra B,int N,int M, int n int m)
/*Mentranslasi citra A sejauh m,n Hasil translasi disimpan di dalam B. Ukuran citra
adalah N x M
*/
{ int i, j,n;
for (i=0; i<=N-1; i++)
for (j=0; j<=M-1; j++)
{
B[i][j]=A[i+m][j+n];
}
}
citra semula hasil translasi dengan m=23 n=25
3.

Operasi penskalaan (scaling)

Operasi penskalaan (scaling) dimaksudkan untuk memperbesar atau memperkecil citra. Hal
ini dapat dilakukan dengan mengintroduksi parameter skala, baik kearah horisontal (Sx)
maupun vertikal (Sy). Skala yang bernilai lebih dari 1 akan memperkecil citra. Apabila
aspect ratio (perbandingan antara tinggi dan lebar citra) hendak dipertahankan, maka dipilih
Sx = Sy. Penskalaan citra disebut image zooming yaitu pengubahan ukuran citra
(membesar/zoom out atau mengecil/zoom in)

Rumus penskalaan :
x=sx . x sx : faktor skala arah x
y=sy . y sy : faktor skala arah y
Operasi zoom out (pembesaran) dengan faktor 2 (sx=sy = 2) diimplementasikan dengan
menyalin setiap pixel sebanyak 4 kali.
Jadi citra 2 x 2 pixel akan menjadi 4 x 4 pixel
Operasi zoom in (pengecilan) dengan faktor skala = dilakukan dengan mengambil ratarata dari 4 pixel yang bertetangga menjadi 1 pixel
void zoom_out(Citra A, Citra B,int N,int M)
/* Perbesaran citra A dengan faktor skala 2
*/
{ int i, j, k, m, n;
m=0; n=0
for (i=0; i<=N-1; i++)
{
for (j=0; j<=M-1; j++)
{
B[m][n]=A[i][j];
B[m][n+1]=A[i][j];
B[m+1][n]=A[i][j];
B[m+1][n+1]=A[i][j];
N=n+2;
}
m=m+2
n=0
}

}
4.

Rotasi

Rumus rotasi citra :


x=x cos() y sin()
y= x sin() + y cos()
Jika sudut rotasinya 90, maka implementasinya lebih mudah dilakukan dengan cara
menyalin pixel-pixel baris ke pixel-pixel kolom pada arah rotasi. Rotasi 180
diimplementasikan dengan melakukan rotasi 90 dua kali.
Rotasi 90 berlawanan arah jarum jam
void translasi(Citra A, Citra B,int N,int M)
/* Rotasi citra sejauh 90 berlawanan arah jarum jam
*/
{ int i, j, k;
for (i=0; i<=N-1; i++)
{
k=M-1
for (j=0; j<=M-1; j++)
{
B[k][i]=A[i][j];
k--;
}
}
}
void rotasi(Citra A, Citra B,int N,int M)
/* Rotasi citra sejauh 90 searah jarum jam

*/
{ int i, j, k;
k=M-1
for (i=0; i<=N-1; i++)
{
for (j=0; j<=M-1; j++)
{
B[j][k]=A[i][j];
}
k--;
}
}

Flowchart

Flowchart Pencerminan

Flowchart Rotasi

Flowchart Scalling

Flowchart Translasi

Implementasi Program Menggunakan Matlab

Gambar1. Matlab R2012b


1. Buka Aplikasi Matlab (jika sudah terinstall)

Pilih new script untuk membuat program baru.


2. Persiapkan gambar (image) sebagai bahan percobaan

Untuk melakukan operasi geometri pada gambar, terlebih dahulu persiapkan gambar
yang ingin dioperasikan. Setelah itu simpan gambar pada folder matlab, biasanya
terdapat pada folder mydocument/matlab

Gambar 2. clo.jpg
3. Buat baris program sebagai berikut

Gambar 3. Pencerminan

Gambar 4. Rotasi

Gambar 5. Skala

Gambar 6. Translasi
4. Klik run, dan lihat hasilnya

Gambar 7. Scalling

Gambar 8. Output Rotasi

Gambar 9. Output Flipping

Gambar 10. Output Translasi/Cropping

Anda mungkin juga menyukai