bootstrap website templates

Repo ini berisi souce code dan report untuk emenuhi salah satu tugas sistem pakar

Repo ini berisi souce code dan report untuk emenuhi salah satu tugas sistem pakar

Hai sobat Source Code Aplikasi, pada artikel ini saya akan berbagi tentang Repo ini berisi souce code dan report untuk emenuhi salah satu tugas sistem pakar yang mudah-mudahan bisa berguna bagi sobat saat belajar pengembangan program berbasis Jupyter Notebook. Source code aplikasi ini dapat sobat dapatkan secara gratis dan dijadikan rujukan coding guna pengembangan aplikasi atau juga bisa dijadikan ide pembuatan tugas kuliah, atau bahkan dapat juga dipakai langsung, meski harus tetap memperhatikan copyright developer pada aplikasinya.

Deskripsi Aplikasi


Farid Wujdi Mubarok

1313617006

Sistem Pakar Semester 112

Assigment 1

Task 1: 2D Transformation

Translasi

Translasi adalah pergeseran suatu objek, baik itu titik, garis, maupun bidang dengan jarak dan arah tertentu. Translasi dinyatakan dengan vector (tx, ty), dimana tx merupakan pergesaran pada sumbu x, sedangkan ty merupakan pegeseran pada sumbu y, hal ini lah yang membuat translasi memiliki 2 DoF (Degree of Freedom) yaitu tx dan ty. Jika sebuah titik A = (x, y) di translasikan oleh (tx, ty), maka akan diperoleh koordinat titik baru A' = (x' + y') dengan x' = x + tx dan y' = y + ty.

Didalam buku Computer Vision: Algorithms and Applications notasi tranlasi ditulis dengan

x' = [I, t] x

Dengan I merupakan matriks identitas (2 x 2). Karena kita menggunakan homogeneous coordinates maka koordinat titik A dinyatakan dengan A = (x, y, 1). Maka notasinya menjadi

x' = [I & t]
     [0^T & 1] x

Dengan notasi matriks diatas, didapat matriks pengali translasi pada homogeneous coordinates sebagai berikut

[x', y', 1]= [
               [1, 0, tx],
               [0, 1, ty],
               [0, 0, 1]
             ]  [x, y, 1]

Atau dapat di tulis

A' = [
       [1, 0, tx],
       [0, 1, ty],
       [0, 0, 1]
     ]  A

Rotasi

Rotasi merupakan transformasi yang memindahkan suatu objek dengan cara memutar titik-titik objek tersebut sebesar theta dalam derajat atau radian (dalam source code saya menggunakan derajat) dan berputar berlawanan arah jarum jam dengan pusat rotasi (0, 0).

Notasi matriks dari rotasi adalah sebagai berikut

R = [
      [cos(theta), -sin(theta)],
      [sin(theta), cos(theta)]
    ]

Pada homogeneus coordinates notasi matriks rotasi dapat ditulis

R = [
      [cos(theta), -sin(theta), 0],
      [sin(theta), cos(theta),  0],
      [0, 0, 1]
    ]

Jika sebuah titik diputar sebesar theta maka akan diperoleh koordinat titik baru sebagai berikut

x' = x . cos(theta) - y . sin(theta)
y' = x . sin(theta) + y . cos(theta)

Rotasi + Translasi

Rotasi + translasi disebut juga dengan 2D Euclidean transformation, transformasi ini memiliki 3 DoF yaitu theta, tx, dan ty. Notasi dari rotasi + translasi dapat ditulis dengan A' = RA + t atau

A' = [R t] A

dan dapat dijabarkan sebagai berikut

A' = [
      [cos(theta), -sin(theta), tx],
      [sin(theta), cos(theta),  ty]
    ] A

Dimana A merupakan sebuah titik (x, y)

Jika sebuah titik di Rotasi + translasi kan maka di dapat koordinat titik baru sebagai berikut

x' = x . cos(theta) - y . sin(theta) + tx
y' = x . sin(theta) + y . cos(theta) + ty

Dengan homogeneus coordinates notasi matriks rotasi + translasi dapat ditulis sebagai berikut

[x', y', 1] = [
      [cos(theta), -sin(theta), tx],
      [sin(theta), cos(theta),  ty],
      [0, 0, 1]
    ] [x, y, 1]

atau

A' = [
      [cos(theta), -sin(theta), tx],
      [sin(theta), cos(theta),  ty,
      [0, 0, 1]
    ] A

Dari eksperimen yang dilakukan rotasi + translasi dapat diartikan transformasi objek dengan cara di rotasi-kan sebesar theta kemudian di translasikan pada sumbu x sebesar tx dan pada sumbu y sebesar ty.

Dilatasi

Dilatasi merupakan transformasi untuk memperbesar atau memperkecil ukuran sebuah objek tanpa merubah bentuk dari objek tersebut. Jika sebuah titik A = (x, y) di dilatasikan dengan skala s, maka akan diperoleh koordinat titik yang baru sebagai berikut:

x' = sx
y' = sy

Notasi matriks dilatasi adalaah sebagai berikut

     A' = [
            [s, 0],
            [0, s]
          ] A

atau dalam homogeneus coordinates dapat ditulis

     [x', y', 1] = [
            [s, 0, 0],
            [0, s, 0],
            [0, 0, 1]
          ] [x, y, 1]

atau

A' = [
      [s, 0, 0],
      [0, s, 0],
      [0, 0, 1]
     ] A

Affine

Affine merupakan transformasi yang merupakan kombinasi dari transformasi translasi, rotasi dan diltasi. transformasi ini mempertahankan bentuk dasar dan integritas bangun geometri.

Notasi transformasi affine ditulis sebagai berikut

A' = [
       [sR, t],
       [0^T, 1]
     ] A

atau dapat dijabarkan sebagai berikut

[x', y', 1] = [
      [s* cos(theta), s *-sin(theta), tx],
      [s* sin(theta), s * cos(theta),  ty,
      [0, 0, 1]
    ] [x, y, 1]

atau dapat ditulis

A' = [
      [s * cos(theta), s * -sin(theta), tx],
      [s * sin(theta), s * cos(theta),  ty,
      [0, 0, 1]
    ] A

Projeksi

Transformasi ini, juga dikenal sebagai transformasi perspektif atau homografi, transformasi ini beroperasi pada koordinat yang homogen. menurut artikel Projective Transformations in 2D dijelaskan bahwa, Projeksi adalah transformasi linear pada 3-vektor homogen yang diwakili oleh matriks 3 � 3 non-singular. Kita dapat merepresentasikan matriks projeksi sebagai berikut

[x', y', 1]=[
             [a11, a12, a13],
             [a21, a22, a23],
             [a31, a32, v  ]
            ]  [x, y, 1]

dengan v = 1 atau v = 0, dan dapat disederhanakan menjadi

[wx', wy', w] = [
                  [1, 0, 0],
                  [0, 1, 0],
                  [v1, v2, v]
                ] [x, y, 1]

Hal ini didapat dikarenakan projeksi matriks memiliki 8 DoF, diantaranya adalah 6 DoF matriks affine, dan 2 DoF yang baru yaitu, v1 dan v2.

Dalam perhitungan matriks, elemen w juga terhitung dalam matriks, sehingga membuat hasil perkalian matriks menjadi dalam dimensi 3. maka untuk mendapatkan nilai matriks dalam dimensi 2 hasil perkalian matriks di bagi dengan nilai w, dimana w = v1x + v2y + v. sehingga didapat

x' = x / (v1x + v2y + v)
dan
y' = y / (v1x + v2y + v)

© Copyright 2020 Source Code Aplikasi. All Rights Reserved.