Cropping_Merging_Transparent

dokumen-dokumen yang mirip
Kompensasi Pencahayaan

Kompensasi Pencahayaan

Pre Processing. Memberikan gambaran jenis-jenis pre-processing

Pre Processing. Memberikan gambaran jenis-jenis pre-processing

Pembacaan dan Penampilan Image

PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Praktikum Pengolahan Citra Digital

BAB III PEMBAHASAN MASALAH

LISTING PROGRAM. 'byte of info Private Type RGBcolor R As Byte 'amount of red G As Byte 'amount of green B As Byte 'amount of blue End Type


BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

CONTOH KODE DALAM BAB 3

BAB V PROSEDUR DAN FUNGSI

MODUL III PENGGUNAAN KOMPONEN LANJUTAN

MENGELOLA FILE. - Untuk menampilkan file, perlu membuka direktori penyimpanannya.

Sesi/Perkuliahan ke: XII

Lampiran A. Program Visualisasi Cuaca Otomatis

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan tempat implementasi dari perangkat lunak ini adalah sebagai berikut :

LISTING PROGRAM PADA MICROSOFT VISUAL BASIC 6.0

Gambar 8.1. Dialog Menu Editor.

1. Buka Visual Basic 6 sobat. Buat project baru, masukkan componen Microsoft Winsock Control 2. Masukkan coding berikut

Praktekum VB 6.0 I. KOTAK PESAN. Contoh syntax kotak pesan

Keterangan : Integer Long : tipe data untuk angka bulat Single, Double : tipe data untuk angka pecahan/desimal Currency : tipe data untuk angka mata

Algoritma Pemrograman 2 B

LISTING PROGRAM. Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)

Modul Praktikum Ke-2

SURAT KETERANGAN. Hasil Uji Program Tugas Akhir


Menampilkan List Komputer dan User-nya dalam Jaringan Intranet Dengan Fungsi WNet API

Pengenalan Microsoft Visual Studio 2010

Krisna D. Octovhiana. 1.1 Mengenal Data dan Variabel.

Program absen dengan menggunakan visual basic 6.0

DAFTAR PUSTAKA. 1. Ramadhan, Arif, Seri Penuntun Praktis Microsoft Visual Basic. Jakarta: Elex Media Komputindo.

Lampiran A HELP EZTWAIN. crash.

E-Trick Visual Basic 6.0

Excel Sebagai Output VB 3.1 Excel Sebagai Output VB

LISTING PROGRAM. Script Menu Utama Pada Game Tebak Kata

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ]

PROGRAM INTERFACING AUDIO DAN VIDEO DENGAN PROGRAM VISUAL BASIC LAPORAN TUGAS KARYA TULIS INTERFACING

DAFTAR PUSTAKA. Multimedia Control, Steven Holzner. Diakses pada tanggal 14/09/2011 Dari

STRUKTUR KENDALI PERCABANGAN

STRUKTUR KENDALI PERULANGAN

DISUSUN OLEH : : Friska Rosalina NIM :

Bab 7 Komponen Dasar Visual Basic 29 BAB VII KOMPONEN DASAR VISUAL BASIC TUJUAN PRAKTIKUM

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL I MEMBUAT PROGRAM PERTAMA VISUAL BASIC

MODUL 3 SELEKSI KONDISI

Visual Basic 6.0 For Beginners

LAMPIRAN. Kode Program Menu Utama

PENGGUNAAN DATA DAN VARIABEL

BAB IV IMPLEMENTASI DAN PENGUJIAN

LISTING PROGRAM. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ShowInputForm End Sub

MODUL D :// Mahasiswa memahami konsep pembuatan database. Mahasiswa memahami konsep pembuatan program dasar aplikasi database

Pertemuan 11 type data, deklarasi variabel dan array 1.1 Mengenal Data dan Variabel

MODUL IV PERULANGAN ( LOOPING )

Menjelaskan variabel aksi sebagai data string nilai,hasil dan simpan sebagai data double.

BAB-3 ATRIBUT PRIMITIF 2D

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan menjelasan berbagai hal yang berhubungan dengan pengujian.

LAMPIRAN CODE PROGRAM ASSEMBLY. $mod51 servo1 equ p3.5 servo2 equ p3.3 servo3 equ p1.7 servo4 equ p1.5 servo5 equ p1.3 servo6 equ p1.

MODUL IV PROCEDURE. [Private public static]sub namaprosedur (daftarargumen) End Sub

Private Sub cmdprint_click() WebBrowser1.ExecWB OLECMDID_PRINT,OLECMDEXECOPT_DODEFAULT End Sub

BAB III Struktur Program

Me.Picture = LoadPicture(App.Path & "\pakar.jpg") App.HelpFile = App.Path & "\Help.hlp" End Sub

Mengerti dan memahami pemrograman berbasis object Mengerti dan memahami pembuatan visualisasi untuk interface

PENGGUNAAN DATA DAN VARIABEL KOMPUTER APLIKASI AKUNTANSI V PRODI AKUNTANSI - UNIKOM

MODUL 2 PERANCANGAN INTERFACE

Sistem Distribusi Data Melalui COM+ Dengan Visual Basic

BAB 3 TOOLBAR CUSTOMIZE DAN CONTROL TOOLBOX

PEMROGRAMAN VISUAL BASIC

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

BAB 11 MENGELOLA FILE & OLE (OBJECT LINGKING EMBEDDING)

Koneksi Visual Basic 6.0 dengan SQL SERVER 2000

Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.

MetaMessage Desain Form MetaMessage

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

MODUL I Pengenalan IDE Visual Basic 6.0

OPERASI FILE Operasi File Dalam Visual Basic Membuka File

PEMROGRAMAN VB.NET. Sintaks Pada Class

Visual Basic 6.0 For Beginners

PROGRAM KOMBINASI PEMUTAR MUSIK DAN ALARM DENGAN MENGGUNAKAN MICROSOFT VISUAL BASIC 6.0. Tiffani Dita Permata Putri (NIM )

PROSEDUR & PARAMETER PROSEDUR

Pengenalan Visual Basic

PEMROGRAMAN VB.NET. Koneksi Ke Database

BAB IV IMPLEMENTASI DAN PENGUJIAN

PEMROGRAMAN DASAR. Visual Basic 6

Struktur Data II. Bekerja Dengan Form.

KARTU BIMBINGAN TUGAS AKHIR MAHASISWA

VISUAL BASIC 6.0 PEMROGRAMAN KOMPUTER. Visual Basic

Basic Programing Visual Basic

Pemilihan Garis Pada Saat Runtime

Modul Praktikum 6 Dasar-Dasar Teknologi Informasi dan Komunikasi. Aplikasi Spreadsheet Microsoft Excel (2) Validasi Data & Fungsi Terbilang

V. MENGENAL VARIABEL KONSTANTA TIPE DATA DAN OPERATOR DALAM VISUAL BASIC

Fungsi Kelompok : yang dalam hal ini d adalah jumlah pixel yang terlibat dalam perhitungan rata-rata. Gambar 1 memperlihatkan dua buah skema

Pertemuan 3 Bekerja dengan Kontrol

Perancangan Sistem Pemantauan Gerak menggunakan Desain Komunikasi Visual Di DINHUBKOMINFO Kabupaten Demak Dengan Metode Background Subtractian

MODUL-MODUL PRAKTIKUM VB.

TIK CERDA S. Adobe Photoshop MODUL ADOBE PHOTOSHOP TIK CERDAS. TIK CERDAS Surabaya, Indonesia

Bab 4 Hasil dan Pembahasan


BAB III LANDASAN TEORI. muka yang bersifat grafis Graphical User Interface (GUI). Daripada menulis

P5 Variabel, Tipe Data dan Operator

Transkripsi:

PRAKTIKUM VI Cropping_Merging_Transparent Tujuan Memberikan pengertian perlunya dilakukan penggabungan gambar Memberikan contoh penggabungan gambar Teori Penunjang Gambar Percobaan Prosedur Percobaan 1. Pada percobaan pertama akan dibuat aplikasi untuk membuang sebagian informasi pada suatu gambar. Metode yang digunakan sangat sederhana, yaitu membuang pixel yang memiliki warna tertentu berdasarkan pencarian pixel tetangga. 2. Masukkan program berikut pada file module1 Option Explicit ' Deklarasi Jenis type Data RGB, untuk keperluan Image Processing 'Public Type trgb24 ' B As Byte ' G As Byte ' R As Byte 'End Type 28

Public Declare Function SetPixel Lib "gdi32" ( _ ByVal hdc As Long, ByVal x As Long, ByVal y As Long, _ ByVal crcolor As Long) As Long Public Declare Function GetPixel Lib "gdi32" ( _ ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long 'Global vimage(0 To 319, 0 To 239) As trgb24 3. Masukkan program berikut pada file form1 Option Explicit Dim p As Long Dim R As Integer, G As Integer, B As Integer Dim pr As Integer, pg As Integer, pb As Integer Private Sub Command1_Click() Transparan Private Sub Dir1_Change() File1.Path = Dir1.Path Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Private Sub File1_Click() Picture1.Picture = LoadPicture(File1.Path + "\" + File1.FileName) Private Sub Form_Load() File1.Pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.tif" Picture1.ScaleMode = 3 Picture1.AutoSize = False Picture1.AutoRedraw = False MsgBox "Klik mouse pada daerah yang akan dibuang" Sub Hapus(ByVal x As Integer, ByVal y As Integer) On Error GoTo OutOfStack p = GetPixel(Picture1.hdc, x, y) If p > 0 Then pr = p And &HFF pg = (p \ &H100) And &HFF pb = (p \ &H10000) And &HFF If Sqr((R - pr) ^ 2 + (G - pg) ^ 2 + (B - pb) ^ 2) < 30 Then SetPixel Picture1.hdc, x, y, 0 Hapus x + 1, y Hapus x + 1, y - 1 Hapus x, y - 1 Hapus x - 1, y - 1 Hapus x - 1, y Hapus x - 1, y + 1 Hapus x, y + 1 Hapus x + 1, y + 1 OutOfStack: 29

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, _ x As Single, y As Single) p = GetPixel(Picture1.hdc, x, y) R = p And &HFF G = (p \ &H100) And &HFF B = (p \ &H10000) And &HFF Hapus x, y On Error GoTo 0 4. Jalankan program dan ambil file gambar yang berukuran kecil (agar tidak terlalu lama). 5. Klik pada bagian tertentu yang akan dibuang (dijadikan hitam). Pada program ini, pencarian pixel yang akan dibuang berdasarkan pixel dengan warna yang mendekati pixel referensi (pixel yang di-klik oleh mouse) dan dilakukan mencarian pixel tetangga. 6. Prinsip pencarian pixel tetangga yang digunakan dengan melakukan rekursif (pemanggilan diri sendiri). Karena itu, proses ini rawan terhadap habisnya STACK system. Pada program ini dilengkapi pencegahan kesalahan akibat habisnya stack. Coba cari bagian program ini. 7. Klik bagian-bagian tertentu dari gambar sampai semua bagian yang ingin dibuang menjadi hitam. 8. Coba ubah nilai threshold untuk menyatakan pixel dengan warna yang sama. If Sqr((R - pr) ^ 2 + (G - pg) ^ 2 + (B - pb) ^ 2) < 30 Then 9. Berikut ini merupakan percobaan lain yang menggunakan cara penggambaran garis tepi untuk membatasi tepi gambar. 10. Tambahkan/ganti program berikut pada file form1. Ada beberapa perubahan dan tambahan yang harus dilakukan dari program sebelumnya. 30

Option Explicit Dim p As Long Dim R As Integer, G As Integer, B As Integer Dim pr As Integer, pg As Integer, pb As Integer Private Sub Command1_Click() Transparan Private Sub Dir1_Change() File1.Path = Dir1.Path Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Private Sub File1_Click() Picture1.Picture = LoadPicture(File1.Path + "\" + File1.FileName) Check1.Value = 1 Private Sub Form_Load() File1.Pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.tif" Picture1.ScaleMode = 3 Picture1.AutoSize = False Picture1.AutoRedraw = False Check1.Value = 1 MsgBox "Klik mouse pada daerah yang akan dibuang" Sub Hapus(ByVal X As Integer, ByVal Y As Integer) On Error GoTo OutOfStack If p > 0 Then pr = p And &HFF pg = (p \ &H100) And &HFF pb = (p \ &H10000) And &HFF If Sqr((R - pr) ^ 2 + (G - pg) ^ 2 + (B - pb) ^ 2) < 100 Then SetPixel Picture1.hdc, X, Y, 0 Hapus X + 1, Y Hapus X + 1, Y - 1 Hapus X, Y - 1 Hapus X - 1, Y - 1 Hapus X - 1, Y Hapus X - 1, Y + 1 Hapus X, Y + 1 Hapus X + 1, Y + 1 OutOfStack: Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Check1.Value = 0 Then If p > 0 Then R = p And &HFF G = (p \ &H100) And &HFF 31

B = (p \ &H10000) And &HFF Hapus X, Y On Error GoTo 0 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single) Dim xx As Integer, yy As Integer If Button = 1 And Check1.Value = 1 Then For yy = -1 To 1 For xx = -1 To 1 SetPixel Picture1.hdc, X + xx, Y + yy, 0 11. Terlebih dulu, gambar garis sepanjang gambar yang akan dibuang. Lakukan dengan hati-hati, karena program ini masih relatif sederhana. 12. Klik option Garis untuk memulai cropping. Klik pada bagian gambar yang akan dibuang. 13. Coba buat program cropping di atas dengan menggunakan cara segmentasi warna (melakukan scanning semua pixel yang membuang warna yang sesuai). Bandingkan dari sisi kemudahan dan hasilnya. 14. Percobaan berikut merupakan kelanjutan dari percobaan sebelumnya, cropping, dimana program ini digunakan untuk melakukan penggantian gambar latar belakang dengan gambar lainnya. 15. Masukkan program berikut pada file module1. Option Explicit ' Deklarasi Jenis type Data RGB, untuk keperluan Image Processing 32

'Public Type trgb24 ' B As Byte ' G As Byte ' R As Byte 'End Type Public Declare Function SetPixel Lib "gdi32" ( _ ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, _ ByVal crcolor As Long) As Long Public Declare Function GetPixel Lib "gdi32" ( _ ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long 'Global vimage(0 To 319, 0 To 239) As trgb24 Global Mask(0 To 319, 0 To 239) As Boolean 16. Masukkan program berikut pada file form1. Option Explicit Dim p As Long Dim R As Integer, G As Integer, B As Integer Dim pr As Integer, pg As Integer, pb As Integer Private Sub Command1_Click() Merge Private Sub Dir1_Change() File1.Path = Dir1.Path Private Sub Dir2_Change() File2.Path = Dir2.Path Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Private Sub Drive2_Change() Dir2.Path = Drive2.Drive Private Sub File1_Click() Dim X As Integer, Y As Integer Picture1.Picture = LoadPicture(File1.Path + "\" + File1.FileName) For Y = 0 To 239 For X = 0 To 319 Mask(X, Y) = False Private Sub File2_Click() Picture2.Picture = LoadPicture(File2.Path + "\" + File2.FileName) Private Sub Form_Load() File1.Pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.tif" Picture1.ScaleMode = 3 Picture1.AutoSize = False 33

Picture1.AutoRedraw = False File2.Pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.tif" Picture2.ScaleMode = 3 Picture2.AutoSize = False Picture2.AutoRedraw = True Picture3.ScaleMode = 3 Picture3.AutoSize = False Picture3.AutoRedraw = False MsgBox "Klik mouse pada daerah gambar latar depan yang akan dibuang" Private Sub Merge() Command1.Enabled = False Dim X As Integer, Y As Integer Dim p As Long, n As Integer For Y = 0 To 239 For X = 0 To 319 If Mask(X, Y) = False Then Else p = GetPixel(Picture2.hdc, X, Y) SetPixel Picture3.hdc, X, Y, p Command1.Enabled = True Sub Hapus(ByVal X As Integer, ByVal Y As Integer) On Error GoTo OutOfStack If p > 0 Then pr = p And &HFF pg = (p \ &H100) And &HFF pb = (p \ &H10000) And &HFF If Sqr((R - pr) ^ 2 + (G - pg) ^ 2 + (B - pb) ^ 2) < 30 Then SetPixel Picture1.hdc, X, Y, 0 Mask(X, Y) = True Hapus X + 1, Y Hapus X + 1, Y - 1 Hapus X, Y - 1 Hapus X - 1, Y - 1 Hapus X - 1, Y Hapus X - 1, Y + 1 Hapus X, Y + 1 Hapus X + 1, Y + 1 OutOfStack: Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) R = p And &HFF G = (p \ &H100) And &HFF B = (p \ &H10000) And &HFF Hapus X, Y On Error GoTo 0 34

17. Coba perhatikan teknik penggabungan yang digunakan dalam program ini. Jelaskan cara kerjanya. If Mask(X, Y) = False Then Else p = GetPixel(Picture2.hdc, X, Y) SetPixel Picture3.hdc, X, Y, p 18. Ambil gambar untuk latar depan (foto orang atau obyek lain yang sederhana) dengan ukuran yang tidak terlalu besar. 19. Ambil gambar untuk latar belakang, misalkan berbentuk gambar pemandangan atau sesuatu yang sederhana. 20. Lakukan proses pembuangan bagian latar belakang dari gambar latar depan. Bersihkan bagian yang tidak diinginkan sampai bersih. 21. Tekan tombol Merge untuk mulai melakukan penggabungan. 22. Coba buat program penggabungan yang melibatkan tiga gambar, layer 1 (background), layer 2, dan layer 3 (foreground). Kunci utama dari proses ini adalah penggunaan masker untuk tiap layer (kecuali backgroud) dan proses penggabungan. a. Buat tiga set picture box beserta lainnya (picture1, picture2, picture3, file dan lain sebagainya) b. Sediakan picture box untuk gambar hasil (picture4) c. Buat program untuk membuang backgound dari picture1 dan picture2 d. Sediakan dua masker, untuk picture1 (Mask1) dan picture2 (Mask2) e. Gunakan proses penggabungan berikut ini If Mask1(X, Y) = False Then Else If Mask2(X, Y) = False Then p = GetPixel(Picture2.hdc, X, Y) Else p = GetPixel(Picture3.hdc, X, Y) SetPixel Picture4.hdc, X, Y, p 23. Percobaan berikut digunakan untuk melakukan penggabungan dua gambar dengan teknik transparasi. Program pada percobaan sebelumnya dapat digunakan untuk percobaan ini. 35

24. Masukkan program berikut pada file form1. Option Explicit Private Sub Command1_Click() Transparan Private Sub Dir1_Change() File1.Path = Dir1.Path Private Sub Dir2_Change() File2.Path = Dir2.Path Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Private Sub Drive2_Change() Dir2.Path = Drive2.Drive Private Sub File1_Click() Picture1.Picture = LoadPicture(File1.Path + "\" + File1.FileName) Private Sub File2_Click() Picture2.Picture = LoadPicture(File2.Path + "\" + File2.FileName) Private Sub Form_Load() File1.Pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.tif" Picture1.ScaleMode = 3 Picture1.AutoSize = False Picture1.AutoRedraw = True File2.Pattern = "*.bmp;*.jpg;*.jpeg;*.gif;*.tif" Picture2.ScaleMode = 3 Picture2.AutoSize = False Picture2.AutoRedraw = True 36

Picture3.ScaleMode = 3 Picture3.AutoSize = False Picture3.AutoRedraw = True ScrollBar1.Min = 0 ScrollBar1.Max = 100 ScrollBar1.Value = 50 Private Sub Transparan() Command1.Enabled = False Dim x As Integer, y As Integer Dim p As Long, n As Integer Dim R1 As Integer, G1 As Integer, B1 As Integer Dim R2 As Integer, G2 As Integer, B2 As Integer Dim R As Integer, G As Integer, B As Integer n = ScrollBar1.Value For y = 0 To 239 For x = 0 To 319 p = GetPixel(Picture1.hdc, x, y) R1 = p And &HFF G1 = (p \ &H100) And &HFF B1 = (p \ &H10000) And &HFF p = GetPixel(Picture2.hdc, x, y) R2 = p And &HFF G2 = (p \ &H100) And &HFF B2 = (p \ &H10000) And &HFF R = ((100 - n) * R1 + n * R2) / 100 G = ((100 - n) * G1 + n * G2) / 100 B = ((100 - n) * B1 + n * B2) / 100 SetPixel Picture3.hdc, x, y, RGB(R, G, B) DoEvents Picture3.Refresh Command1.Enabled = True 25. Pilih dua gambar untuk dilakukan penggabungan. 26. Atur nilai transparansi yang diinginkan. 27. Tekan tombol Transparent. Tugas 1. Bandingkan hasil cropping dari dua metode yang digunakan pada percobaan. Mana yang lebih baik? Mana yang lebih mudah? 37