I.TUJUAN
1. Mahasiswa dapat membuat program pengolahan citra menggunakan Visual C++
dengan MFC.
2. Mahasiswa dapat membuat dialog menggunakan Visual C++ dengan MFC.
II.DASAR TEORI
Image processing atau sering disebut dengan pengolahan citra digital merupakan
suatu proses dari gambar asli menjadi gambar lain yang sesuai dengan keinginan kita. Misal suatu gambar yang kita dapatkan terlalu gelap maka dengan image processing gambar tersebut bisa kita proses sehingga mendapat gambar yang jelas.
>EDGE DETECTION (DETEKSI TEPI)
Deteksi tepi berfungsi untuk mengidentifikasi garis batas (boundary) dari suatu objek yang terdapat pada citra. Tepian dapat dipandang sebagai lokasi piksel dimana terdapat nilai perbedaan intensitas citra secara ekstrem. Sebuah edge detector bekerja dengan cara mengidentifikasi dan menonjolkan lokasi-lokasi piksel yang memiliki karakteristik tersebut.
Ada banyak cara-cara untuk mengintifikasikan bagian tepi suatu citra, diantaranya adalah sebagai berikut :
>OPERATOR GRADIEN
Pada citra digital f(x,y), turunan berarah sepanjang tepian objek akan bernilai maksimum pada arah normal dari kontur tepian yang bersesuaian. Sifat ini dipergunakan sebagai dasar pemanfaatan operator gradien sebagai edge detector.
Operator gradien citra konvensional melakukan diferensiasi intensitas piksel pada arah baris dan kolom, mengikuti persamaan local intensity variation berikut :
Nilai magnitudo gradien dari persamaan di atas dapat dinyatakan sebagai berikut:
Operator gradien dapat direpresentasikan oleh dua buah kernel konvolusi Gx dan Gy, yang masing-masing mendefinisikan operasi penghitungan gradien dalam arah sumbu x dan sumbu y yang saling tegak lurus.
Dalam kasus penghitungan gradien dengan persamaan local intensity variation, maka kernel Gx dan Gy dapat dirumuskan seperti berikut:
Gx = [-1 1]
Gy =
Dari operator gradien konvensional di atas, dapat diturunkan berbagai operator gradien berikut :
1. Operator Roberts
2. Operator Prewit
3. Operator Sobel
>OPERATOR LAPLACIAN
Dalam kondisi transisi tepian yang lebih tidak ekstrem, penggunaan operator turunan kedua lebih dianjurkan.
Turunan kedua memiliki sifat lebih sensitif terhadap noise, selain itu juga menghasilkan double edge. Oleh karena itu, operator Laplacian dalam deteksi tepi pada umumnya tidak dipergunakan secara langsung, namun dikombinasikan dengan suatu kernel Gaussian menjadi sebuah operator Laplacian of Gaussian.
Fungsi transfer dari kernel Laplacian of Gaussian dapat dirumuskan sebagai berikut:
>OPERATOR ZERRO CROSS
Metode Zero-cross menemukan edge dengan cara mencari zero crossings setelah memfilter I (Identitas) dengan filter a yang telah ditentukan.
>OPERATOR CANNY
Salah satu algoritma deteksi tepi modern adalah deteksi tepi dengan menggunakan metoda CannyBerikut
III. PERCOBAAN
3.1 Menjalankan Visual C++ dengan MFC
1. Membuka Visual C++ 6.0
• Pilih menu : Start->Programs->Microsoft Visual Studio 6.0->Microsoft Visual C++ 6.0
2. Memberi nama program
• Pilih menu : File->New->Projects->MFC AppWizard(exe)
• Isi Project name misalnya dengan: dialog (lihat gambar 1.3)
• Tekan tombol OK
3. Memilih isi program
• Step 1 : What tipe of application would you like to create
(aplikasi apa yang ingin dibuat) pilih dialog based untuk membuat aplikasi memakai dialog.
• Step 2 :
1. What features would you like to include? Praktikum Pengolahan Citra PENS-ITS
(fitur apa saja yang akan dimasukkan) pilih About box dan 3D controls untuk pilihan
standar.
2. What features would you like to include?
(mendukung aplikasi apa ?) pilih ActiveX controls untuk pilihan standar.
3. Would you like to include WOSA support ? Window Sockets tidak dipilih untuk pilihan
standard.
4. Please enter a title for your dialog ? Title sudah berisi text sama dengan nama project untuk
pilihan standard
• Step 3 :
1. What style of project would you like ?
Pilihan standard dan yang aktif hanya MFC Standard.
2. Would you like to generate source file comments ? pilihan standard Yes, Please
3. How would you like to use the MFC Library ? pilihan standard As a shared DLL
• Step 4 : AppWizard creates the following classes for you
(AppWizard akan membuat class seperti dibawah ini)
CtestApp
CtestDlg
(a) Dialog Step 1 (b) Dialog Step 2 (c) Dialog Step 3 (d) Dialog Step 4
• Tekan tombol Finish akan muncul New Project Information. Perhatikan gambar 1.5.
• Kemudian tekan tombol OK. Tampilan awal dialog akan dihasilkan perhatikan gambar 1.6.
Praktikum Pengolahan Citra PENS-ITS
4. Cara menjalankan program
• Pilih menu : Build->Execute (!), perhatikan gambar 1.7. Dialog Hasil Execute
• Tekan tombol Yes, untuk menutup aplikasi.
1.1.1. Cara Mendisain Dialog
Catatan : Jika Dialog Editor tidak tampak buka pada Resource View (Ctrl-Shift-E) double click
pada IDD_TEST_DIALOG.
1. Cara membuat dialog
• Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan Dialog
• Pilih ResourceView pada workspace
• Pilih folder paling atas dengan cara klik pada tanda +
• Pilih folder dialog dengan cara klik pada tanda +
• Klik 2 kali IDD_DIALOG_DIALOG seperti gambar 1.4
Praktikum Pengolahan Citra PENS-ITS
Gambar 1.8 Membuat Dialog
2. Menghapus dan menambah control pada dialog
• Untuk menghapus control : aktifkan control dengan cara klik pada area control lanjutkan
dengan menekan tombol delete. Cobalah untuk menghapus control : text TODO, button OK
dan Cancel.
• Untuk menambah control: (button) pilih icon control pada toolbox drag drop ke editor dialog.
(static text) pilih icon control pada toolbox drag drop ke editor dialog.
(picture box) pilih icon control pada toolbox drag drop ke editor dialog.
• Tambahkan control (dua button, 1 static text, 1 picture) pada dialog editor seperti hasil pada
3. Mengaktifkan control
• Pilih control button1, double clik, pada dialog Add Member Function klik OK.
• Atau klik kanan, pilih klik ClassWizard, pada MFC Class Wizard Dialog Messages aktifkan
BN_CLICKED, double clik, pada dialog Add Member Function klik OK
Praktikum Pengolahan Citra PENS-ITS
4. Rubah terlebih dahulu ID dari static text = ID_label dan ID dari picture = ID_pic1, dengan
cara aktifkan control dan klik kanan pilih properti.
5. Pada dialog MFC classwizard,Member Variabels edit type dan member dari control
6. Menulis fungsi pada button1 clik
• Tambahkan program untuk menampilkan pesan pada static text seperti dibawah ini
void CDialogDlg::OnButton1()
{
// TODO: Add your control notification handler code here
SetDlgItemText(IDC_label,"Belajar Prak Citra dgn VC++ dan MFC");
}
Jalankan program dengan memilih menu Build->Execute (!)
7. Tambahkan deklarasi kelas CBitmap pada File View – Header Files – dialogDlg.h
// Construction
public:
CDialogDlg(CWnd* pParent = NULL); // standard constructor
CBitmap m_bmpBitmap;
//
Praktikum Pengolahan Citra PENS-ITS
8. Menulis fungsi pada button2 clik
void CDialogDlg::OnButton2()
{
// TODO: Add your control notification handler code here
CDC* pDC = m_pic1.GetDC();//
CDC dcMem1;
CRect rect;//kotak di picture
BITMAP bm;//
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
"pens.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.DeleteObject())
m_bmpBitmap.Detach();
m_bmpBitmap.Attach(hBitmap);
}
m_pic1.GetClientRect(rect);//
m_bmpBitmap.GetBitmap(&bm);//
dcMem1.CreateCompatibleDC(pDC);
dcMem1.SelectObject(&m_bmpBitmap);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem1,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);//
}
Jalankan program dengan memilih menu Build->Execute (!)
Tidak ada komentar:
Posting Komentar