Pembuatan Aplikasi Pengolahan
Citra dengan OpenCV dan Microsoft Visual Studio 2008
Kelompok Watermarking
Adam Ramadhan Junior (50410106)
Chandra Isefa Anaska (51410553)
Universitas Gunadarma
2013
PENDAHULUAN
Seiring dengan pesatnya
kemajuan teknologi informasi, data atau informasi semakin banyak bila dilihat dari bentuk dan jenisnya. Mulai
dari teks, gambar, audio, dan juga video.
Gambar, atau yang bisa juga
disebut sebagai citra, berperan sangat penting sebagai bentuk informasi visual.
Ada yang mengatakan bahwa citra (gambar) lebih berarti dari ribuan kata-kata.
Saya membenarkan hal tersebut, karena memang benar dengan melihat suatu gambar kita langsung
bisa mendefinisikan sendiri mengenai gambar tersebut. Dan juga bisa memberikan
banyak arti lainnya.
Terkadang citra yang ada itu
tidak sepenuhnya baik maksudnya tidak sepenuhnya sempurna, perlu dilakukan
suatu proses untuk membuatnya menjadi lebih baik. Proses inilah yang dinamakan
pengolahan citra.
Teknik pengolahan citra-pun
sudah semakin banyak digunakan. Contohnya saja dalam dunia perdagangan. Kita
semua mungkin sudah tahu dengan yang namanya barcode. Penggunaan barcode di supermarket
dibuat untuk mempermudah pembacaan harga. Bila tidak menggunakan barcode
mungkin petugas bisa dibuat sulit, karena harus mengecek harga barang satu-satu. Selain itu masih ada lagi, sidik jari untuk
kehadiran juga termasuk aplikasi pengolahan citra.
Pengolahan citra merupakan
suatu proses perbaikan kualitas citra agar mudah di interpretasi oleh manusia atau
komputer. Proses-proses yang termasuk ke dalam pengolahan citra, yaitu :
1. Perbaikan kualitas citra (Image Enhancement)
2. Pemugaran citra (Image Restoration)
3. Pemampatan citra (Image Compression)
4. Segmentasi citra (Image Segmentation)
5. Pengorakan citra (Image Analysis)
6. Rekonstruksi citra (Image Recontruction)
Di dalam laporan ini akan
dijelaskan bagaimana membuat suatu aplikasi yang berkaitan dengan pengolahan
citra deteksi tepi. Sebelumnya, kami akan
memberitahukan bagaimana cara instalasi dan konfigurasi yang diperlukan dalam
pembuatan aplikasi tersebut. Di halaman terakhir, penulis juga melampirkan
source code yang digunakan dalam pembuatan aplikasi tersebut.
INSTALASI
DAN KONFIGURASI
Dalam pembuatan aplikasi
pengolahan citra, penulis menggunakan perangkat lunak berikut :
1. Microsoft Visual Studio 2008
Microsoft Visual Studio adalah
software yang digunakan sebagai compiler. Compiler adalah perangkat lunak yang
digunakan untuk mengubah source code dari suatu bahasa pemrograman (dalam kasus
ini bahasa pemrogramannya yaitu C++) menjadi native code / bahasa mesin (file executable)
agar dapat dieksekusi oleh komputer.
Microsoft Visual Studio ini dibuat oleh perusahaan Microsoft.
2. OpenCV 2.1
OpenCV (Open Computer
Vision) merupakan semacam library yang digunakan dalam membuat aplikasi yang
berkaitan dengan computer vision. OpenCV juga menyediakan banyak fungsionalitas,
yang tentunya dapat mempersingkat waktu dalam pembuatan aplikasi yang lumayan rumit.
Spesifikasi minimum sistem yang
harus Anda miliki yaitu :
ü 1,6 GHz or faster processor
ü 1024 MB RAM
ü 3 GB or available hard-disk space
ü 5400 RPM hard-disk drive
ü Direct X 9 – capable video car running at 1024 x
768 or higher display resolution
ü DVD – ROM drive
INSTALASI
Langkah-langkah Instalasi Microsoft
Visual Studio 2008 :
1.
Masukkan
DVD software MS Visual Studio Team System 2008 Team Suite kedalam DVD Room
PC/laptop Anda, kemudian akan muncul auto run CD. Jika tidak muncul maka klik
file Setup.exe sehingga muncul seperti gambar berikut ini :
2.
Kemudian
pilih menu yang paling atas yaitu "Install Visual Studio 2008", lalu
klik sehingga muncul seperti gambar berikut ini :
3.
Tunggulah
hingga progressbar selesai loading sehingga muncul tombol "Next"
seperti gambar berikut ini :
4.
Kemudian
klik tombol "Next" di atas sehingga muncul seperti gambar berikut ini
:
5.
Karena
saya menggunakan lisensi yang disediakan oleh kantor saya, maka secara otomatis
product key number akan terisi. Jangan lupa pilih "I have read and accept
the license terms" lalu klik tombol "Next" lagi sehingga muncul
seperti gambar berikut ini :
6.
Pilih
saja fitur "Default" sesuai rekomendasi sistem. Jika, tampilan Anda
sudah sesuai dengan gambar di atas. Silakan klik tombol "Install"
sehingga muncul seperti gambar berikut ini :
7.
Inilah
proses instalasi komponen, tunggulah beberapa menit hingga proses benar-benar
selaesai. Lalu muncul seperti gambar berikut ini :
8.
Instalasi
telah selesai dilakukan maka klik tombol "Finish". Perlu diketahui
bahwa sebelumnya saya sudah melakukan instalasi Microsoft .NET 2.0, 3.0, dan
3.5.
Kemudian Instal OpenCV 2.1
sampai finish, lalu adapun langkah-langkah konfigurasinya
Ø Buka Microsoft Visual Studio 2008
Ø File -> New -> Project
Ø Pilih Win32 Console Application
Ø Beri nama :" Hello" -> OK ->
Finish
Ø
Configure
Project Directories
Pilih Project ->
Properties -> Configuration Properties -> VC++ Directories
Ø Include Direcrories -------->tambahkan :
C:\OpenCV2.1\include\opencv;
Ø Library Directories--------->tambahkan :
C:\OpenCV2.1\lib;
Ø Source Directories--------->tambahkan :
C:\OpenCV2.1\src\cv; C:\OpenCV2.1\src\cvaux; C:\OpenCV2.1\src\cxcore;
C:\OpenCV2.1\src\highgui; C:\OpenCV2.1\src\ml;
Ø Linker -> Input -> Additional Dependencies
Ø Untuk Debug------>tambahkan : cv210d.lib; cxcore210d.lib; highgui210d.lib;
Ø Untuk Release---->tambahkan: cv210.lib; cxcore210.lib; highgui210.lib;
Penjelasan Watermarking
Watermarking
Secara hierarkis,
watermarking merupakan suatu proses yang berakar pada konsep ilmu steganography.
Steganography sendiri sudah dikenal sejak jaman Mesir kuno. Menurut Cachin,
steganography diartikan sebagai suatu seni dan ilmu untuk menyembunyikan pesan
yang sebenarnya sehingga orang awam tidak dapat mendeteksinya. Menurut Popa, steganography
dapat dibagi menjadi 2 (dua) bagian yaitu protection against detection (data
hiding) dan protection against removal (document marking). Watermarking
merupakan salah satu jenis dari document marking.
Manfaat watermarking:
- Ownership
Assertion. Kepemilikan dari dokumen multimedia dapat dilindungi dengan menambahkan watermark yang berisi
informasi pemilik dari dokumen multimedia. Pemilik juga dapat mempublikasikan
dokumen multimedia yang sudah disisipi watermark dengan aman tanpa harus
mempublikasikan dokumen multimedia yang asli. Jika terjadi terjadi klaim dari orang
lain mengenai dokumen multimedia tersebut, tentu dapat diketahui secara otentik siapa
pemilik sebenarnya.
- Fingerprinting.
Watermarking dan fingerprinting pada dasarnya sama, hanya saja pada fingerprinting, penyisipan watermark
biasanya bersifat unik untuk suatu dokumen multimedia. Dokumen multimedia yang
sama dapat memiliki fingerprint yang berbeda.
- Copy
prevention or control. Teknik watermarking juga dapat dilakukan untuk
mencegah dokumen multimedia
untuk diduplikasi dengan hardware atau software tertentu. Misalnya untuk mencegah suatu dokumen
multimedia yang tersimpan dalam CD atau DVD agar tidak diduplikasi dengan CD
atau DVD copier.
ALGORITMA
Dari gambar tersebut terlihat
bahwa gambar asli akan di-encode dengan menambahkan
gambar rahasia dan kunci
tertentu. Gambar yang sudah di-encode, selanjutnya dapat
ditransfer melalui suatu jalur
komunikasi dan jika akan diperiksa keasliannya atau ingin
mendapatkan gambar aslinya,
maka dilakukan proses decoder. Proses decoder key (kunci) yang sama dengan kunci pada proses encode.
Listing
Program
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace cv;
int main( int argc, char** argv
)
{
double alpha = 0.5; double
beta; double input;
Mat src1, src2,
dst;
/// Ask the user enter alpha
std::cout<<" Simple Linear Blender "<<std::endl;
std::cout<<"-----------------------"<<std::endl;
std::cout<<"* Enter alpha [0-1]: ";
std::cin>>input;
/// We use the alpha provided by the user if it is between
0 and 1
if( input >= 0.0 && input <= 1.0 )
{ alpha = input;
}
/// Read image ( same size, same type )
src1 = imread("../images/x.jpg");
src2 = imread("../images/y.jpg");
if( !src1.data ) { printf("Error
loading src1 \n"); return -1; }
if( !src2.data ) { printf("Error
loading src2 \n"); return -1; }
/// Create Windows
namedWindow("Adam & Chandra Watermark",
CV_WINDOW_AUTOSIZE);
beta = ( 1.0 -
alpha );
addWeighted( src1,
alpha, src2, beta, 0.0, dst);
imshow( "Adam & Chandra Watermark", dst );
waitKey(0);
return 0;
}
Screenshot tampilan project pada Microsoft Visual Studio 2008
Gambar 1 (Gambar dasar)
Gambar 2 (Watermark)
Input nilai untuk kapasitas opacity gambar
Hasil watermarking pada gambar