Konversi Scan S 1 Teknik Informatika Disusun Oleh

  • Slides: 35
Download presentation
Konversi Scan S 1 Teknik Informatika Disusun Oleh Dr. Lily Wulandari 1

Konversi Scan S 1 Teknik Informatika Disusun Oleh Dr. Lily Wulandari 1

Pendahuluan l l l Konversi Scan merupakan sebuah teknik untuk mengubah vertikal / horizontal

Pendahuluan l l l Konversi Scan merupakan sebuah teknik untuk mengubah vertikal / horizontal frekuensi scan dari sinyal video untuk tujuan dan penerapan yang berbeda. Perangkat (alat) yang melakukan konversi ini disebut scan converter. Pengaplikasian dari konversi scan mencakup hal yang luas seperti: video proyektor, peralatan cinema, televisi high definition (HDTV), monitor LCD, dan berbagai aspek gambar serta pemrosesan video. 2

Pendahuluan l l Ada dua metode yang digunakan dalam mengubah data rate gambar: Metode

Pendahuluan l l Ada dua metode yang digunakan dalam mengubah data rate gambar: Metode Analog, yakni metode yang bersifat nonretentive, memory-less atau real time. Dengan metode ini, konversi dilakukan dengan menggunakan sejumlah besar delay cell dan cocok digunakan untuk video analog. 3

Pendahuluan l l - Metode yang kedua yakni: Metode Digital yang bersifat menyimpan (buffered).

Pendahuluan l l - Metode yang kedua yakni: Metode Digital yang bersifat menyimpan (buffered). Dengan metode ini, gambar disimpan dalam buffer garis atau bingkai dengan kecepatan n 1 (data rate) dan dibaca dengan kecepatan n 2 Konversi Scan meliputi: Konversi Scan Garis (line) Konversi Scan Lingkaran (Circle) Pattern Primitive; Alligned Ellipses. 4

Konversi Scan Garis Menarik garis pada layar raster antara dua titik l Apa yang

Konversi Scan Garis Menarik garis pada layar raster antara dua titik l Apa yang salah dengan pernyataan tsb? - pernyataan tsb tidak mengatakan apa tentang titik mana yang diperbolehkan sebagai titik akhir - Pernyataan tsb tidak memberikan arti yang jelas untuk kata "menarik“ - Pernyataan tsb tidak mengatakan apa yang dimaksud "garis" di dunia raster - Pernyataan tsb tidak mengatakan bagaimana mengukur keberhasilan dari algoritma yang diusulkan l 5

Konversi Scan Garis l Problem Statement Mengingat dua titik P dan Q dalam bidang

Konversi Scan Garis l Problem Statement Mengingat dua titik P dan Q dalam bidang datar, menentukan piksel pada layar raster harus berada di dalam rangka untuk membuat gambar dari segmen garis mulai dari P dan berakhir di Q 6

Menemukan Pixel Berikutnya Khusus kasus: l l Garis Horizontal : Gambar pixel P dan

Menemukan Pixel Berikutnya Khusus kasus: l l Garis Horizontal : Gambar pixel P dan tambahkan/kurangkan nilai koordinat x dengan 1 untuk mendapatkan pixel berikutnya Garis Vertical : Gambar pixel P dan tambahkan/kurangkan nilai koordinat y dengan 1 untuk mendapatkan pixel berikutnya. 7

Menemukan Pixel Berikutnya Garis Diagonal: Gambar pixel P dan tambahkan/kurangkan nilai 1 ke koordinat

Menemukan Pixel Berikutnya Garis Diagonal: Gambar pixel P dan tambahkan/kurangkan nilai 1 ke koordinat x dan y untuk mendapatkan titik berikutnya. l Apa yang harus kita lakukan dalam kasus umum? - Tambahkan koordinat x dengan 1 dan pilih titik terdekat ke garis. -Tetapi bagaimana kita mengukur "terdekat"? l 8

Jarak Vertikal Mengapa kita menggunakan jarak vertikal sebagai ukuran menentukan titik terdekat? - karena

Jarak Vertikal Mengapa kita menggunakan jarak vertikal sebagai ukuran menentukan titik terdekat? - karena jarak vertikal sebanding dengan jarak yg sebenarnya - Bagaimana kita menunjukkan ini? - dengan segitiga kongruen l 9

Jarak Vertikal l l Dengan segitiga yang sama kita dapat melihat bahwa jarak sebenarnya

Jarak Vertikal l l Dengan segitiga yang sama kita dapat melihat bahwa jarak sebenarnya untuk garis (warna biru) adalah berbanding lurus dengan jarak tegak lurus terhadap garis (hitam) untuk setiap titik Oleh karena itu, titik dengan jarak vertikal yang lebih kecil terhadap garis adalah yang paling dekat dengan garis 10

Strategi 1 - Incremental Algoritma Dasar Temukan persamaan garis yang menghubungkan dua titik P

Strategi 1 - Incremental Algoritma Dasar Temukan persamaan garis yang menghubungkan dua titik P dan Q Mulai dengan titik p paling kiri, naikkan xi dengan 1 untuk menghitung yi =mxi+B dimana m= slope, B= y intercept/memotong l Letakkan pixel pada (xi, Round(yi)) dimana Round (yi) = 0. 5 + yi l 11

Strategi 1 – Algoritma Incremental l Algoritma Incremental Masing-masing iterasi memerlukan sebuah multiplikasi floating-point

Strategi 1 – Algoritma Incremental l Algoritma Incremental Masing-masing iterasi memerlukan sebuah multiplikasi floating-point - oleh karena itu, modifikasi algoritma yi+1=mxi+1 +B =m(xi +Δx) +B =yi +m Δx If Δx =1, then yi+1 =yi +m Pada setiap langkah, kita tambah berdasarkan langkah terdahulu untuk menemukan nilai y berikutnya 12

Strategi 1 – Algoritma Incremental 13

Strategi 1 – Algoritma Incremental 13

Masalah dengan Algoritma Incremental Pembulatan bilangan bulat membutuhkan waktu l Variabel Y dan m

Masalah dengan Algoritma Incremental Pembulatan bilangan bulat membutuhkan waktu l Variabel Y dan m harus bilangan real atau biner karena kemiringan adalah sebuah pecahan - kasus khusus diperlukan untuk garis-garis vertikal l 14

Strategy 2 –Midpoint Line Algorithm (1/3) l l l Asumsikan bahwa kemiringan garis adalah

Strategy 2 –Midpoint Line Algorithm (1/3) l l l Asumsikan bahwa kemiringan garis adalah dangkal dan positif (0 < slope <1); Slope/kemiringan lain dapat ditangani dengan refleksi yang cocok tentang prinsip sumbu Hubungkan endpoint kiri bawah (x 0, y 0) dan titik akhir kanan atas (x 1, y 1) Asumsikan bahwa kita baru saja memilih pixel P pada (xp, yp) Selanjutnya, kita harus memilih antara pixel ke kanan (pixel E), atau yang kanan dan naik (pixel NE) Q menjadi titik persimpangan dari garis konversi scan dengan garis grid x = xp +1 15

Strategy 2 –Midpoint Line Algorithm (2/3) 16

Strategy 2 –Midpoint Line Algorithm (2/3) 16

Strategy 2 –Midpoint Line Algorithm (3/3) l l l Jalur ini melewati antara E

Strategy 2 –Midpoint Line Algorithm (3/3) l l l Jalur ini melewati antara E dan NE Titik yang lebih dekat ke titik persimpangan Q harus dipilih Amati di sisi mana dari garis titik tengah M terletak: - E lebih dekat dengan garis jika titik tengah M terletak di atas garis, yaitu garis menyilang bagian bawah - NE lebih dekat dengan garis jika titik tengah M terletak di bawah garis, yaitu garis melintasi bagian atas 17

Strategy 2 –Midpoint Line Algorithm (3/4) l l l Kesalahan, jarak vertikal antara pixel

Strategy 2 –Midpoint Line Algorithm (3/4) l l l Kesalahan, jarak vertikal antara pixel yang dipilih dan garis yang sebenarnya, adalah selalu <= ½ Algoritma ini memilih NE sebagai pixel berikutnya untuk baris yang ditampilkan Sekarang, temukan cara untuk menghitung di sisi mana garis titik tengah terletak 18

Garis Properties : l F(xm, ym) = 0 ketika titik M berada pada garis

Garis Properties : l F(xm, ym) = 0 ketika titik M berada pada garis l F(xm, ym) < 0 ketika titik M berada di atas garis l F(xm, ym) > 0 ketika titik M berada di bawah garis l Keputusan akan didasarkan pada nilai fungsi pada titik tengah M pada (xp+1, yp+½) 19

Konversi Scan Garis l l Algoritma DDA, adalah suatu algoritma pengkonversian suatu himpunan pixel–pixel

Konversi Scan Garis l l Algoritma DDA, adalah suatu algoritma pengkonversian suatu himpunan pixel–pixel menjadi suatu garis yang didasari atas perhitungan delta(x) dan delta(y); Algoritma Bresenham merupakan suatu algoritma yang dikreasikan oleh Bresenham yang tidak kalah akurat dan efisien dengan algoritma primitif lainnya. 20

Garis Bebas (Simple Digital Differential Analyzer/DDA) l l Garis yang membentang antara 2 titik,

Garis Bebas (Simple Digital Differential Analyzer/DDA) l l Garis yang membentang antara 2 titik, P 1 dan P 2, selalu membentuk sudut yang besarnya sangat bervariasi. Sudut yang terbentuk menentukan kemiringan suatu garis atau disebut gradient/ slop atau disimbolkan dengan parameter m. Jika titik-titik yang membetuk garis adalah : (x 1, y 1) dan (x 2, y 2) maka 21

Garis Bebas (Simple Digital Differential Analyzer/DDA) l l l Algoritma DDA bekerja atas dasar

Garis Bebas (Simple Digital Differential Analyzer/DDA) l l l Algoritma DDA bekerja atas dasar penambahan nilai x dan nilai y. Pada garis lurus, turunan pertama dari x dan y adalah konstanta. Sehingga untuk memperoleh suatu tampilan dengan ketelitian tinggi, suatu garis dapat dibangkitkan dengan menambah nilai x dan y masing-masing sebesar ∆x dan ∆y. 22

Garis Bebas (Simple Digital Differential Analyzer/DDA) l Kondisi ideal ini sukar dicapai, karenanya pendekatan

Garis Bebas (Simple Digital Differential Analyzer/DDA) l Kondisi ideal ini sukar dicapai, karenanya pendekatan yang mungkin dilakukan adalah berdasarkan piksel-piksel yang bisa dialamati/dicapai atau melalui penambahan atau pengurangan nilai x dan y dengan suatu besaran dan membulatkannya ke nilai integer terdekat. 23

Menggambar GARIS l Algoritma Bresenham - Pixel selanjutnya ? - Algoritma Bresenham memilih titik

Menggambar GARIS l Algoritma Bresenham - Pixel selanjutnya ? - Algoritma Bresenham memilih titik terdekat dari actual path - Setiap sampling akan diinkremen menjadi 1 atau 0. 24

Menggambar Garis Bebas l l Kondisi awal : Jika m < 1, maka m

Menggambar Garis Bebas l l Kondisi awal : Jika m < 1, maka m bernilai positif Bresenham melakukan inkremen 1 untuk x dan 0 atau 1 untuk y. Jika current pixel (xk, yk) Dimanakah pixel berikutnya akan di-plot, apakah di (xk+1, yk+1), (xk+1, yk), atau (xk, yk+1)? 25

Menggambar GARIS 26

Menggambar GARIS 26

Menggambar GARIS l Tentukan nilai parameter keputusan, pk: 27

Menggambar GARIS l Tentukan nilai parameter keputusan, pk: 27

Menggambar GARIS l Algoritma Bresenham untuk |m| < 1: Input 2 endpoints, simpan endpoints

Menggambar GARIS l Algoritma Bresenham untuk |m| < 1: Input 2 endpoints, simpan endpoints kiri sebagai (x 0, y 0). 2. Panggil frame buffer (plot titik pertama) 3. Hitung konstanta ∆x, ∆y, 2∆y– 2∆xdan nilai awal parameter keputusan p 0= 2∆y –∆x 4. Pada setiap xk sepanjang garis, dimulai dari k=0, ujilah : Jika pk< 0, maka plot(xk+1, yk) dan pk+1= pk+ 2∆y Jika tidak maka plot (xk+1, yk+1) dan pk+1= pk+ 2∆y -2∆x 5. Ulangi tahap 4 ∆xkali 1. 28

Menggambar GARIS Latihan : Hitunglah posisi piksel hingga membentuk sebuah garis yang menghubungkan titik

Menggambar GARIS Latihan : Hitunglah posisi piksel hingga membentuk sebuah garis yang menghubungkan titik (12, 10) dan (17, 14) ! Jawab : l 1. (x 0, y 0) =(12, 10) 2. ∆x =5, ∆y = 4, 2∆y =8, 2∆y– 2∆x = -2 3. p 0= 2∆y –∆x = 3 29

Konversi Scan Lingkaran l l l Symmetry Algorithm; Incremental Algorithm; Midpoint Algorithm, di dalam

Konversi Scan Lingkaran l l l Symmetry Algorithm; Incremental Algorithm; Midpoint Algorithm, di dalam algoritma penggambaran lingkaran pada koordinat raster, misalkan pada suatu unit interval, sebelumnya kita harus menentukan posisi pixel yang paling dekat untuk menspesifikasi beberapa langkah pembentukan lingkaran yang diharapkan. 30

Konversi Scan Lingkaran l Kita berikan radius r dan posisi tengah pixel (xc ,

Konversi Scan Lingkaran l Kita berikan radius r dan posisi tengah pixel (xc , yc), kita dapat mengatur atau menentukan sesuai kondisi tertentu suatu algoritma perhitungan yang bertitik pusat pada koordinat origin (0, 0). 31

Konversi Scan Lingkaran 32

Konversi Scan Lingkaran 32

Menggambar LINGKARAN Fungsi Disciminator diketahui bahwa : dan dapat ditulis sebagai suatu fungsi :

Menggambar LINGKARAN Fungsi Disciminator diketahui bahwa : dan dapat ditulis sebagai suatu fungsi : f(x, y) = x 2 + y 2 –r 2 Fungsi Discriminator : f(x, y) < 0 untuk titik di dalam lingkaran f(x, y) > 0 untuk titik di luar lingkaran y) f(x, y) = 0 untuk titik yang terletak pada lingkaran • Algoritma Titik Tengah Lingkaran (Midpoint Circle Algorithm) – Bila diketahui suatu titik : (xk, yk), maka titik berikutnya apakah di(xk+1, yk), or (xk+1, yk-1) ? – Misal titik tengahnya (midpoint) : (xk+1, yk) = 0. 5 – Gunakan fungsi discriminator untuk mendapatkan : f(x, y) = x 2+ y 2–r 2 yk yk-1 yk Circle path yk-1 xk xk Midpoint xk+1 xk+2 33

Menggambar LINGKARAN • Algoritma Titik Tengah Lingkaran ……. . (lanjutan) Dengan menggunakan midpoint di

Menggambar LINGKARAN • Algoritma Titik Tengah Lingkaran ……. . (lanjutan) Dengan menggunakan midpoint di antara 2 kandidat pixel, kita dapat mencari Parameter Keputusan, Pk, untuk mendapatkan plot pixel berikutnya : Pk = f(xk+ 1, yk–½) = (xk+ 1)2+ (yk–½)2–r 2 : -ve, titik tengah berada di dalam lingkaran, plot = (xk+1, yk), Update P : f(x+1, y) = (x + 1)2+ y 2–r 2 Pk f(x+1, y) = (x 2+ 2 x + 1) + y 2–r 2 f(x+1, y) = f(x, y) + 2 x +1 Pk Inkremen : P + = 2 x + 1 + ve, titik tengah berada di luar lingkaran, plot = (xk+1, yk-1) Update P: f(x+1, y-1) = (x + 1)2+ (y-1)2–r 2 f(x+1, y-1) = (x 2+ 2 x + 1) + (y 2– 2 y+2 -r 2) f(x+1, y-1) = f(x, y) + 2 x - 2 y +1 Pk+1 Pk Inkremen : P + = 2 x – 2 y + 1 34

Menggambar LINGKARAN • Kita dapat memiliki beragam titik awal lingkaran, namun diasumsikan inkremen dimulai

Menggambar LINGKARAN • Kita dapat memiliki beragam titik awal lingkaran, namun diasumsikan inkremen dimulai dari (0, r), sehingga P 0 dapat dihitung : p 0= f(1, r– 0. 5) = 12+ (r – 0. 5)2–r 2 p 0= f(1, r– 0. 5) = 1 + (r 2–r + 0. 25) –r 2 p 0= 1. 25 –r • 1. Algoritma Titik Tengah (Mid. Point) selengkapnya Input radius, r, and titik tengah lingkaran (xc, yc). Titik awal diplot pada (0, r) – yang merupakan titik tengah lingkaran asli, 2. Hitung nilai awal Parameter Keputusan : 3. Pada xk, dimulai dengan k = 0, uji nilai pk: Jika pk< 0, maka titik selanjutnya (xk+1, yk) dan Untuk hal lain, titik berikutnya (xk+1, yk-1) dan 4. Tentukan titik simetri pada 7 octant lainnya. 5. Ambil titik aktual untuk titik tengah lingkaran pada (xc, yc) dimana (x + xc, y + yc). 6. Ulangi langkah 3 sampai 5 hingga tercapai x ≥y 35