Rabu, 21 Maret 2018

Pengolahan Citra 1 : Load Gambar dan Save Gambar, Membaca dan Mencopy Data Gambar, Flip Gambar


A.     Pendahuluan
Dalam pengerjaan Praktikum Pengolahan Citra di Program Studi Teknik Elektronika Politeknik Elektronika Negeri Surabaya menggunakan program Visual C# dengan Visual Studio 2017 Community. Berikut ini adalah lingkungan kerja pada Visual Studio 2017.
Gambar 1 : Visual Studio 2017

B.     Load Gambar Dan Save Gambar
Dalam pembuatan program Load Gambar Dan Save Gambar menggunakan sebuah form, dua button dan satu picture box. Berikut adalah desain layout nya.
Gambar 2 : Form Load Gambar Dan Save Gambar

Setalah dibuat desain form nya maka kita mulai memprogramnya, dibawah ini adalah program untuk Load Gambar Dan Save Gambar.
1.  using System;  
2.  using System.Collections.Generic;  
3.  using System.ComponentModel;  
4.  using System.Data;  
5.  using System.Drawing;  
6.  using System.Linq;  
7.  using System.Text;  
8.  using System.Threading.Tasks;  
9.  using System.Windows.Forms;  
10.   
11. namespace LoadSaveGambar  
12. {  
13.     public partial class Form1 : Form  
14.     {  
15.         
16.         public Form1()  
17.         {  
18.             InitializeComponent();  
19.         }  
20.   
21.         //Source code Button 1 untuk ambil gambar  
22.         private void button1_Click(object sender, EventArgs e)  
23.         {  
24.             OpenFileDialog ofd1 = new OpenFileDialog();  
25.   
26.             //Kondisi ketika akan membuka file gambar  
27.             if (ofd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)  
28.             {  
29.                 //file gambar siap ditampilkan di picture box1  
30.                 pictureBox1.Image = new Bitmap(ofd1.FileName);  
31.             }  
32.         }  
33.   
34.         //Source code Button 2 untuk simpan gambar  
35.         private void button2_Click(object sender, EventArgs e)  
36.         {  
37.             SaveFileDialog sfd1 = new SaveFileDialog();  
38.             //Memfilter Gambar yang disimpan dengan ektensi .Png  
39.             sfd1.Filter = "Image files (*.png)|*.png";  
40.   
41.             //Kondisi jika gambar sudah siap untuk disimpan  
42.             if (sfd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)  
43.             {  
44.               
45.                 //Proses penyimpanan gambar  
46.                 pictureBox1.Image.Save(sfd1.FileName, System.Drawing.Imaging.ImageFormat.Png);  
47.             }  
48.         }  
49.     }  
50. }  
Setelah selesai di program maka kita coba menjalankan program. Setelah di klik Start maka akan muncul form seperti di bawah ini.

Gambar 3 : Form Load Gambar Dan Save Gambar Ketika di Jalankan

Ketika button Load Image diklik maka akan muncul file dialog untuk memilih gambar yang akan di tampilkan, lalu pilih gambar, kemudian klik open.

Gambar 4 : Pemilihan gambar untuk ditampilkan di program

Setelah gambar dipilih maka hasilnya akan ditampilkan di program yang kita buat seperti pada gambar dibawah ini.

Gambar 5 : Tampilan gambar di program

Kemudian klik Save Image untuk menyimpan gambar, maka akan muncul file dialog untuk menyatakan gambar akan disimpan dimana. Untuk kali ini gambar sudah difilter akan disimpan dalam format .png.

Gambar 6 : File dialog penyimpanan gambar

Kemudian setelah di file dialog gambar diberi nama, lalu di klik save maka hasilnya gambar akan tersimpan di lokasi folder yang sudah dipilih, dan gambar akan tersimpan dengan extensi .png.

Gambar 7 : Gambar tersimpan dengan extensi .png

C.     Load Gambar, Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar
Untuk kali ini pembuatan program untuk Load Gambar, Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar masih tetap menggunakan Visual C# dengan Visual Studio 2017.
Siapkan form baru seperti biasa, kemudian tambahkan dua picture box dan enam button untuk load image, copy image, flip horizontal, flip vertical, rotate 90o dan rotate 180 o  dengan tampilan sebagai berikut.
Gambar 8 : Gambar form untuk Load Gambar, Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar

Setalah dibuat desain form nya maka kita mulai memprogramnya, dibawah ini adalah program untuk Load Gambar, Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar.
1.  using System;  
2.  using System.Collections.Generic;  
3.  using System.ComponentModel;  
4.  using System.Data;  
5.  using System.Drawing;  
6.  using System.Linq;  
7.  using System.Text;  
8.  using System.Threading.Tasks;  
9.  using System.Windows.Forms;  
10.   
11. namespace MembacaMengcopyGambar  
12. {  
13.     public partial class Form1 : Form  
14.     {  
15.           
16.   
17.         public Form1()  
18.         {  
19.             InitializeComponent();  
20.         }  
21.   
22.         private void button1_Click(object sender, EventArgs e)  
23.         {  
24.             //Load Image  
25.             OpenFileDialog ofd2 = new OpenFileDialog();  
26.             if (ofd2.ShowDialog() == System.Windows.Forms.DialogResult.OK)  
27.             {  
28.                 pictureBox1.Image = new Bitmap(ofd2.FileName);  
29.             }  
30.         }  
31.   
32.         private void button2_Click(object sender, EventArgs e)  
33.         {  
34.             //Copy Image  
35.             Bitmap bmp1 = new Bitmap(pictureBox1.Image);  
36.             Bitmap bmp2 = new Bitmap(pictureBox1.Image);  
37.             for (int x = 0; x < bmp1.Width; x++)   
38.                 for (int y = 0; y < bmp1.Height; y++)  
39.                 {  
40.                     Color w = bmp1.GetPixel(x, y);  
41.                     bmp1.SetPixel(x, y, w);  
42.                 }  
43.   
44.             pictureBox2.Image = bmp2;  
45.         }  
46.   
47.         private void button3_Click(object sender, EventArgs e)  
48.         {  
49.             //Flip Horizontal  
50.             Bitmap bmp3 = new Bitmap(pictureBox1.Image);  
51.             Bitmap bmp4 = new Bitmap(pictureBox1.Image);  
52.             for (int x = 0; x < bmp3.Width; x++)  
53.                 for (int y = 0; y < bmp3.Height; y++)  
54.                 {  
55.                     Color w = bmp3.GetPixel(x, y);  
56.                     bmp4.SetPixel(bmp3.Width - 1 - x, y, w);  
57.                 }  
58.             pictureBox2.Image = bmp4;  
59.   
60.         }  
61.   
62.         private void button4_Click(object sender, EventArgs e)  
63.         {  
64.             //Flip Vertical  
65.             Bitmap bmp5 = new Bitmap(pictureBox1.Image);  
66.             Bitmap bmp6 = new Bitmap(pictureBox1.Image);  
67.             for (int x = 0; x < bmp5.Width; x++)  
68.                 for (int y = 0; y < bmp5.Height; y++)  
69.                 {  
70.                     Color w = bmp5.GetPixel(x, y);  
71.                     bmp6.SetPixel(x, bmp5.Height - 1 - y, w);  
72.                 }  
73.             pictureBox2.Image = bmp6;  
74.         }  
75.   
76.           
77.   
78.         private void button5_Click(object sender, EventArgs e)  
79.         {  
80.             //90 Derajat  
81.             Bitmap bmp7 = new Bitmap(pictureBox1.Image);  
82.             Bitmap bmp8 = new Bitmap(pictureBox1.Image);  
83.             for (int x = 0; x < bmp7.Width; x++)  
84.                 for (int y = 0; y < bmp7.Height; y++)  
85.                 {  
86.                     Color w = bmp7.GetPixel(x, y);  
87.                     bmp8.SetPixel(bmp7.Height - 1 - y, x, w);  
88.                }  
89.             pictureBox2.Image = bmp8;  
90.         }  
91.   
92.         private void button6_Click(object sender, EventArgs e)  
93.         {  
94.             //180 Derajat  
95.             Bitmap bmp9 = new Bitmap(pictureBox1.Image);  
96.             Bitmap bmp10 = new Bitmap(pictureBox1.Image);  
97.             for (int x = 0; x < bmp9.Width; x++)  
98.                 for (int y = 0; y < bmp9.Height; y++)  
99.                 {  
100.                             Color w = bmp9.GetPixel(x, y);  
101.                             bmp10.SetPixel(bmp9.Width - 1 - x, bmp9.Height - 1 - y, w);  
102.                         }  
103.                     pictureBox2.Image = bmp10;  
104.                 }  
105.             }  
106.         }  
Setelah selesai di program maka kita coba menjalankan program. Setelah di klik Start maka akan muncul form seperti di bawah ini.

Gambar 9 : Program Load Gambar, Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar ketika dijalankan

Ketika button Load image diklik, maka akan masuk file dialog untuk memilih gambar yang akan ditampilkan
Gambar 10 : Memilih gambar untuk ditampilkan.

Kemudian gambar akan ditampilkan di picturebox 1. Untuk diproses selanjutnya.

Gambar 11 : Gambar ditampilkan di picturebox 1

Setelah gambar tampil seperti pada gambar diatas, maka kita bias mulai untuk melakukan Copy Image, Flip Horizontal, Flip Vertical, rotate 90o dan rotate 180 o  . Untuk acuan gambar tetap menggunakan picture box1, sehingga jika dilakukan operasi-operasi seperti diatas maka gambar akan tetap mengacu pada gambar di picture box1 seperti arah gambar, warna, dll. Dibawah ini hanya saya tampilkan gambar-gambar operasi yang dilakukan.

Gambar 12 : Operasi Copy Image

Gambar 13 : Operasi Flip Horizontal

Gambar 14 : Operasi Flip Vertical

Gambar 15 : Operasi Rotate 90o

Gambar 16 : Operasi Rotate 180o

-        Pada komponen PictureBox, terdapat segitiga kecil dibagian atas yang digunakan untuk mengubah size-mode. Jelaskan apa perbedaan masing-masing size-mode:
Ø  Normal
Ø  StretchImage
Ø  AutoSize
Ø  CenterImage
Ø  Zoom

Member name
Keterangan
Normal
Gambar ditempatkan di sudut kiri atas PictureBox. Gambar terpotong jika lebih besar dari PictureBox yang ada di dalamnya.
StretchImage
Gambar di dalam PictureBox diregangkan atau menyusut agar sesuai dengan ukuran PictureBox.
AutoSize
PictureBox berukuran sama dengan ukuran gambar yang dikandungnya.
CenterImage
Gambar ditampilkan di tengah jika PictureBox lebih besar dari gambar. Jika gambar lebih besar dari PictureBox, tepi luarnya akan terpotong.
Zoom
Ukuran gambar meningkat atau menurun mempertahankan rasio ukuran.

-        Jelaskan apa fungsi dari perintah pictureBox1.Image = File;
Maksud dari pernyataan diatas adalah perintah untuk membuka gambar yang berasal dari file.
-        Tambahkan menu pada project Image2 yang telah dikerjakan sebelumnya untuk Flip Vertical, Rotate 90o dan Rotate 180o
Menu sudah include di atas.

Tidak ada komentar:

Posting Komentar