Selasa, 23 November 2010

Kompresi gambar Dengan Matlab 7.1

Kompresi
Secara garis besar, kompresi merupakan proses untuk menghilangkan berbagai kerumitan yang tidak penting (redundansi) dari suatu informasi dengan cara memadatkan isi file sehingga ukurannya menjadi lebih kecil dengan memaksimalkan kesederhanaannya dan tetap menjaga kualitas penggambaran dari informasi tersebut. Kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, memperkecil kebutuhan bandwith.Teknik kompresi bisa dilakukan terhadap data teks/biner, gambar (JPEG, PNG, TIFF), audio (MP3, AAC, RMA, WMA), dan video (MPEG, H261, H263).

Langkah-Langkah Pembuatan Aplikasi Kompresi
Aplikasi kompresi yang kami buat, menggunakan MATLAB 7, yaitu software yang digunakan sebagai alat pemrograman standar bidang matematika, rekayasa dan keilmuan yang terkait. MATLAB menyediakan beberapa pilihan untuk dipelajari yaitu metode visualisasi dan pemrograman.. Ada beberapa tahap dalam pembuatannya, tahap pertama adalah membuat design figure sseperti gambar berikut

Design figure merupakan tahap untuk mendesain tampilan dari aplikasi yang akan dibuat. Ada beberapa component palette yang digunakan, yaitu dua buah axes untuk menampilkan gambar asli dan gambar hasil konversi. Kemudian ada beberapa static text untuk menampilkan nama file dan ukuran dari gambar yang dibuka serta yang telah di kompressi. Selain itu ada pula pushbutton yang berfungsi untuk menyediakan menu dari aplikasi ini yaitu, buka gambar, kompres, dan keluar. Untuk mengedit atau mengatur component pallet, klik dua kali pada pallete yang ingin diedit dan akan keluar tampilan property inspector

Setelah membuat desain, selanjutnya adalah membuat source code program. Untuk memulai membuatnya, buka layout figure yang telah dibuat kemudian klik kanan pada figure dan pilih M-file, kemudian ketik source code pada editor M-file

Pada function buka_Callback, kita ketikkan source code seperti berikut

[nama_file1, nama_path1]=uigetfile( ... {'*.bmp;,*.jpg','File Citra(*.bmp,*.jpg)'; '*.bmp','File Bitmap(*.bmp)';... '*.jpg','File JPEG(*.jpg)'; '*.*','Semua File(*.*)'},... 'Buka File Citra Host/Asli'); if ~isequal(nama_file1, 0) handles.data1=imread(fullfile(nama_path1,nama_file1)); guidata(hObject,handles); handles.current_data1=handles.data1; axes(handles.citra1); imshow(handles.current_data1); set(handles.text2,'String',nama_file1); set(handles.text8,'String',size(handles.data1,1)); set(handles.text11,'String',size(handles.data1,2)); else return; end

script tersebut menjelaskan bahwa pada function buka_Callback terdapat fungsi uigetfile yang digunakan untuk membaca file citra dengan format yang ditentukan yaitu *.bmp, *.jpg sebagai filter.
Berikutnya ketikkan script berikut pada function kompres_Callback

[nama_file_simpan, path_simpan]=uiputfile(... {'*.jpg','File citra(*.jpg)'; '*.jpg','Citra JPEG(*.jpg)';... '*.*','Semua File(*.*)'},... 'Menyimpan File Citra Hasil Kompresi JPEG'); imwrite(handles.data1, fullfile(path_simpan, nama_file_simpan)); citra_kompres=imread(fullfile(path_simpan, nama_file_simpan)); guidata(hObject,handles); axes(handles.citra2); imshow(citra_kompres); set(handles.text4,'String',nama_file_simpan); set(handles.text12,'String',size(handles.data1,1)); set(handles.text13,'String',size(handles.data1,2)); script tersebut menyatakan bahwa terdapat fungsi uigetfile pada function kompres_Callback yang digunakan untuk membuat file citra yang di kompresi akan berformat *.jpg apapun format awal file citra tersebut.
Terakhir aadalah mengetikkan script pada bagian function keluar_Callback, script yang diketikkan adalah

selection=questdlg(['Keluar ' get(handles.figure1,'Name')''],... ['Keluar ' get(handles.figure1,'Name')''],... 'Ya','Tidak','Ya'); if strcmp(selection,'Tidak') return; end delete(handles.figure1) Script tersebut berfungsi menampilkankotak dialog yang berisi dua pushbutton yaitu “Ya” dan “Tidak” yang akan menanyakan apakah pengguna ingin keluar dari aplikasi atau tidak.
Hasil dari aplikasi ini jika dijalankan adalah sebagai berikut,
  • Tampilan Awal
  • Tampilan Pilih Menu Buka Gambar
  • Tampilan Gambar Asli
  • Tampilan Pilih Menu Kompres (simpan nama file hasil kompresi)
  • Tampilan Gambar Asli & Gambar Kompresi
  • Tampilan Menu Keluar

Nama Kelompok:
  1. Cindy Realitha (50407218)
  2. Nandhi Angga Eka Putra (50407611)
Kelas: 4IA03



2 komentar:

  1. source code buat yang diatasnya gmn bos ??
    kok cuman source code buat botton sajaa

    BalasHapus
  2. bang boleh minta aplikasinya gk???

    BalasHapus