Senin, April 28, 2014

Komputasi Modern

A. Artikel Komputasi Modern
Komputasi modern terdiri dari dua kata yaitu komputasi dan modern,  dimana komputasi dapat diartikan sebagai cara untuk menemukan pemecahan permasalahan dari data input dengan suatu algoritma sedangkan modern ini mengungkapkan tentang teknologi masa kini. Maka dapat di simpulkan Komputasi modern merupakan perhitungan yang menggunakan komputer canggih dimana pada komputer tersebut tersimpan sejumlah algoritma untuk menyelesaikan masalah perhitungan secara efektif dan efisien.

Selain itu, komputasi modern mempunyai banyak fungsi guna memecahkan berbagai masalah seperti untuk menghitung:
1. Akurasi (bit, floating point)
2. Kecepatan (dalam satuanHz)
3. Problem volume besar (parallel)
4. Modeling (NN dan GA)
5. Kompleksitas (menggunakan Teori Bog O)

Komputansi modern mempunyai karakteristik komputasi modern yang terdiri atas 3 macam, yaitu:
1. Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
2. Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
3. Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.

B. Sejarah Komputasi Modern
Sejarah komputer modern dimulai dengan dua teknologi yang terpisah -perhitungan otomatis dan dapat di program- tapi tidak ada satu perangkat pun yang dapat dikatakan sebagai komputer, karena sebagian penerapan yang tidak konsisten terhadap istilah tersebut.

Salah satu tokoh yang paling berpengaruh terhadap perkembangan komputasi modern adalah John Von Neumann (1903-1957). John Von Neumann adalah salah satu ahli matematika terbesar abad ini. Beliaulah yang pertama kali menggagas konsep sebuah sistem yang menerima instruksi-instruksi dan menyimpannya dalam sebuah memori. Konsep inilah yang menjadi dasar arsitektur komputer hingga saat ini. Beliau juga salah seorang ilmuwan yang sangat berpengaruh dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Beliau telah memberikan karya-karya yang menakjubkan lewat teori kuantum, game theory, fisika nuklir, dan ilmu komputer.

John Von Neumann adalah anak pertama dari pasangan Neumann Miksa dan Kann Margit. Kedua orang tua nya memberikan nama Neumann Janos, begitulah nama asli dari John Von Neumann yang terlahir di Budapest, ibu kota Hungaria, pada tanggal 28 Desember 1903. Beliau terlahir dengan otak yang jenius, karena saat usia nya masih beliau beliau mampu menyeimbangkan kemampuan logika analitisnya dengan kemampuan sosial. Beliau memiliki bakat pada bidang matematika.

John Von Neumann juga sangat tertarik pada hidrodinamika dan kesulitan penyelesaian persamaan diferensial parsial nonlinier yang digunakan, Von Neumann kemudian beralih dalam bidang komputasi. Von Neumann menjadi seorang konsultan pada pengembangan komputer ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori.

Berikut ini beberapa contoh komputasi modern sampai dengan lahirnya ENIAC:
1. Konrad Zuse’s electromechanical “Z mesin”. Z3 (1941) sebuah mesin pertama menampilkan biner aritmatika, termasuk aritmatika floating point dan ukuran programmability. Pada tahun 1998, Z3 operasional pertama di dunia komputer itu di anggap sebagai Turing lengkap.
2. Berikutnya Non-programmable Atanasoff-Berry Computer yang di temukan pada tahun 1941 alat ini menggunakan tabung hampa berdasarkan perhitungan, angka biner, dan regeneratif memori kapasitor. Penggunaan memori regeneratif diperbolehkan untuk menjadi jauh lebih seragam (berukuran meja besar atau meja kerja).
3. Selanjutnya komputer Colossus ditemukan pada tahun 1943, berkemampuan untuk membatasi kemampuan program pada alat ini menunjukkan bahwa perangkat menggunakan ribuan tabung dapat digunakan lebih baik dan elektronik reprogrammable. Komputer ini digunakan untuk memecahkan kode perang Jerman.
4. The Harvard Mark I ditemukan pada 1944, mempunyai skala besar, merupakan komputer elektromekanis dengan programmability terbatas.
5. Lalu lahirlah US Army’s Ballistic Research Laboratory ENIAC ditemukan pada tahun 1946, komputer ini digunakan untuk menghitung desimal aritmatika dan biasanya disebut sebagai tujuan umum pertama komputer elektronik (ENIAC merupakan generasi yang sudah sangat berkembang di zamannya sejak komputer pertama Konrad Zuse ’s Z3 yang ditemukan pada tahun 1941).

Sejarah dari komputasi modern sangat lah panjang perjalannya. Dari seorang John Von Neumann komputasi modern tersebut bisa berkembang sampai saat ini yang kita kenal dan kita tahu. Dari ilmu komputasi dan dikembangkan menjadi komputasi yang modern dengan menggunakan komputer yaitu Komputasi Modern.

C. Jenis-jenis Komputasi Modern
Komputasi modern mempunyai 3 jenis, yaitu:
1. Mobile Computing atau Komputasi Bergerak
Mobile computing (komputasi bergerak) merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan  perubahan dari sisi manusia maupun alat. Contoh dari mobile computing adalah GPS, smart phone, dan sebagainya.
Gambar 1.1 Mobile Computing

2. Grid Computing
Komputasi grid memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini tidak perlu saling eksklusif, meskipun itu adalah skenario yang ideal. Sebagai tugas lengkap pada berbagai unit komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian collates itu membentuk keluaran kohesif.
Keuntungan dari komputasi grid adalah dua kali lipat: pertama, kekuatan pemrosesan yang tidak digunakan secara efektif digunakan, memaksimalkan sumber daya yang tersedia dan, kedua, waktu yang dibutuhkan untuk menyelesaikan pekerjaan besar berkurang secara signifikan.
Idealnya kode sumber harus direstrukturisasi untuk membuat tugas-tugas yang saling eksklusif adalah sebagai mungkin. Itu tidak berarti bahwa mereka tidak bisa saling bergantung, tetapi pesan yang dikirim antara tugas-tugas meningkatkan faktor waktu. Satu pertimbangan penting saat membuat pekerjaan komputasi grid adalah bahwa apakah kode dijalankan serial atau paralel tugas, hasil dari keduanya harus selalu sama di setiap situasi.
Gambar 1.2 Grid Computing

3. Cloud Computing atau Komputasi Awan
Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas. Semua yang terlihat adalah sebuah antarmuka, yang menerima masukan dan memberikan output. Bagaimana output ini dihitung benar-benar tersembunyi.
Sebagai contoh, seorang sopir mobil tahu bahwa roda kemudi dengan memutar arah mobil yang mereka ingin pergi; atau yang menekan pedal gas akan menyebabkan mobil untuk mempercepat. Sopir biasanya tidak peduli tentang bagaimana arah dari roda kemudi dan pedal gas tersebut diterjemahkan ke dalam gerakan yang sebenarnya dari mobil. Oleh karena itu, rincian ini diabstraksikan dari sopir.
Cloud serupa, melainkan menerapkan konsep abstraksi dalam lingkungan komputasi fisik, dengan menyembunyikan proses yang benar dari pengguna. Dalam lingkungan komputasi awan, data bisa berada pada beberapa server, rincian koneksi jaringan yang tersembunyi dan pengguna tidak ada yang tahu. Bahkan, komputer awan awan dinamakan demikian karena sering digunakan untuk menggambarkan pengetahuan eksak tentang pekerjaan batin. Cloud komputasi berat berasal dari paradigma Unix memiliki beberapa elemen, masing-masing yang sangat baik pada satu tugas tertentu, daripada memiliki satu elemen besar yang tidak baik.
Gambar 1.3 Cloud Computing

D. Kesimpulan
Komputasi modern ternyata tidak pernah lepas dari kehidupan masyarakat sehari-hari pada akhir-akhir ini dan pada masa mendatang, karena gaya hidup masyarakat pada zaman modern ini tidak pernah lepas dengan peralatan elektronik yang selalu terhubung dengan jaringan internet dan komputasi modern ini akan selalu berkembang dan dikembangkan oleh manusia.

Dari artikel yang telah diperoleh kelebihan dari artikel tersebut adalah dapat menjelaskan secara singkat dan padat mengenai pengertian komputasi modern secara keseluruhan, sehingga seseorang yang masih mencari tahu apa itu komputasi modern dapat memahami dengan mudah apa yang dituliskan.

Kekurangan artikel tersebut adalah penjelasan mengenai sejarah komputasi modern yang kurang menjelaskan mengenai sejarah penemu komputasi modern.

E. Refrensi
[1] Hikaru (2011). Penjelasan Singkat Komputasi Modern dalam http://hikarunamie.wordpress.com/2011/06/03/penjelasan-singkat-komputasi-modern/ diunduh pada 29 April 2014.
[2] Husein, Nur Ihsan (2013). Pengantar Komputasi Modern dalam http://sharemyexpi.blogspot.com/2013/03/pengantar-komputasi-modern.html diunduh pada 29 April 2014.

Rabu, Maret 26, 2014

Penerapan Komputasi Modern pada Website Hiburan Disney Channel

Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan computer [1].
Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern [3].
Karakteristik komputasi modern ada 3 macam [2], yaitu:
1.    Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
2.    Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
3.    Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.
Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi [2]:
1.    Akurasi (big, Floating point)
2.    Kecepatan (dalam satuan Hz)
3.    Problem Volume Besar (Down Sizzing atau pararel)
4.    Modeling (NN & GA)
5.    Kompleksitas (Menggunakan Teori big O)
Jenis-jenis komputasi modern ada 3 macam [2], yaitu:
1.    Mobile Computing atau Komputasi Bergerak Mobile computing (komputasi bergerak) merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel.
2.    Grid Computing Komputasi grid memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan.
3.    Cloud Computing atau Komputasi Awan Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas.
Pada kesempatan ini saya akan menjelaskan komputasi modern yang diterapkan dalam website  Disney Channel. Disney merupakan perusahaan yang bergerak dalam bidang hiburan. Website Disney Channel menerapkan salah satu jenis komputasi modern yang ada, yaitu cloud computing (komputasi awan).
Tampilan halaman utama website http://www.disneychannel-asia.com/:
Tampilan halaman utama website sudah dapat menggambarkan keseluruhan isi website tersebut. Dapat diperhatikan paduan warna website tersebut sangat menarik untuk dilihat, gambar yang ditampilkan juga menonjolkan apa yang sedang populer atau diharapkan akan populer dalam website tersebut. Tampilan website yang sangat halus dikarenakan menggunakan flash dan javascript yang baik, sehingga menghasilkan perpaduan website yang menarik untuk ditelusuri. Karena channel Disney lebih diperuntukan untuk kalangan anak-anak yang masih kecil ataupun sudah mulai beranjak remaja channel ini lebih memberikan kesan lucu dan penuh warna.
 Bagian header website:
Header website Disney Channel menampilkan tokoh Disney yang ada di film-film yang sedang diputar di Channel tersebut. Masing-masing tokoh memiliki games nya (permainan) masing-masing yang dapat dimainkan oleh user dan tentu saja beberapa cuplikan film tokoh-tokoh tersebut yang menerapkan aplikasi cloud computing (komputasi awan).
Bagian side website:

Bagian samping kiri website yang memberikan jadwal acara yang terupdate di channel tersebut. Sedangkan untuk bagian kanannya menunjukan games apa saja yang baru ditambahkan dalam website tersebut.
Gambar diatas merupakan bagian tengah website yang menampilkan apa saja yang sedang populer di Disney sendiri dan apa saja yang harus diketahui para pencinta Disney Channel.
            Bagian dari website ini yang menunjukan bahwa website ini termasuk dalam website yang menerapkan komputasi modern adalah games yang disediakan website ini, yaitu:
Gambar diatas menunjukan games “Phinneas and Ferb Escape from Mole Tropolis” , games tersebut merupakan salah satu games dari ratusan games yang tersedia pada website tersebut. Penerapan yang digunakan adalah komputasi modern pada jenis komputasi awan, yang memberikan akses bermain kepada user tanpa harus melakukan instalasi game kedalam komputer user. Sehingga tidak akan memberatkan tempat penyimpanan data user, dan user dapat mencantumkan nama mereka jika berhasil mendapatkan skor yang tinggi.

Komentar :
Kelebihan yang dimiliki website Disney Channel adalah tampilan yang sangat menarik perhatian pengguna website, tanpa harus melihat lebih jauh apa saja isi dari website tersebut pengguna bisa saja hanya diam dan memperhatikan website tersebut karna tampilannya yang menarik. Games yang ada di website Disney dapat diakses tanpa harus menginstall program kedalam komputer user. Games yang disediakan pun terdiri dari berbagai macam genre (jenis) sehingga dapat dinikmati oleh penggemar games manapun. Saat membuka games juga hanya membutuhkan waktu yang singkat hingga user dapat menikmati games yang disediakan, karena games yang disediakan cukup ringan untuk dibuka dengan kecepatan internet yang stabil.
Tak ada gading yang tak retak. Website yang memiliki tampilan dan fungsi yang sangat kompleks ini membutuhkan kecepatan internet di atas rata-rata supaya dapat membuka setiap page dengan cepat. Dalam membuka permainan yang sudah ditentukan memang cukup cepat, tetapi saat membuka halaman website ini untuk pertama kalinya akan dirasa cukup lambat.


Refrensi
[1] Wikipedia (2013). Komputasi dalam http://id.wikipedia.org/wiki/Komputasi diunduh pada Rabu, 26 Maret 2014.
[2] Winarno, Andi (2013). Komputasi Modern dalam http://cakrawalamaya.blogspot.com/2013/03/komputasi-modern.html diunduh pada Rabu, 26 Maret 2014.
[3] Ririn (2013). Komputasi Modern dalam http://missririn.blogspot.com/2012/03/komputasi-modern.html diunduh pada Rabu, 26 Maret 2014.

Sabtu, Desember 07, 2013

Thinning Process

Makalah Pengolahan Citra
Thinning Processing


Nama :    1. Muhamad Fitriansyah ( 54410577 )
2. Adry Genialdi (50410235)

Kelas      : 4IA11





UNIVERSITAS GUNADARMA
2013





 Pengertian Pengolahan Citra
Pengolahan citra adalah setiap bentuk pengolahan sinyal dimana input adalah gambar, seperti foto atau video bingkai, sedangkan outputdari pengolahan gambar dapat berupa gambar atau sejumlah karakteristik atau parameter yang berkaitan dengan gambar. Kebanyakan gambar-teknik pemrosesan melibatkan atau memperlakukan foto sebagai dimensi dua sinyal dan menerapkan standar-teknik pemrosesan sinyal untuk itu, biasanya hal tersebut mengacu pada pengolahan gambar digital,tetapi dapat juga digunakan untuk optik dan pengolahan gambar analog. Akuisisi gambar atau yang menghasilkan gambar input di tempat pertama disebut sebagai pencitraan.
Pengolahan citra merupakan proses pengolahan dan analisis citra yang banyak melibatkan persepsi visual. Proses ini mempunyai ciri data masukan dan informasi keluaran yang berbentuk citra. Istilah pengolahan citra digital secara umum didefinisikan sebagai pemrosesan citra dua dimensi dengan komputer. Dalam definisi yang lebih luas, pengolahan citra digital juga mencakup semua data dua dimensi. Citra digital adalah barisan bilangan nyata maupun kompleks yang diwakili oleh bit-bit tertentu.
Umumnya citra digital berbentuk persegi panjang atau bujur sangkar (pada beberapa sistem pencitraan ada pula yang berbentuk segienam) yang memiliki lebar dan tinggi tertentu. Ukuran ini biasanya dinyatakan dalam banyaknya titik atau piksel sehingga ukuran citra selalu bernilai bulat. Setiap titik memiliki koordinat sesuai posisinya dalam citra. Koordinat ini biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1 tergantung pada sistem yang digunakan. Setiap titik juga memiliki nilai berupa angka digital yang merepresentasikan informasi yang diwakili oleh titik tersebut.
Format data citra digital berhubungan erat dengan warna. Pada kebanyakan kasus, terutama untuk keperluan penampilan secara visual, nilai data digital merepresentasikan warna dari citra yang diolah. Format citra digital yang banyak dipakai adalah Citra Biner (monokrom), Citra Skala Keabuan ( gray scale ), Citra Warna ( true color ), dan Citra Warna Berindeks.
Perangkat sistem pengolah citra dikelompokkan menjadi tiga bagian yaitu:
1. Perangkat keras (hardware)
2. Perangkat lunak (software)
3. Intelejensi manusia (brainware)
Ketiga pengelompokkan sistem pengolah citra tersebut sudah menjadi hal mutlak dalam pengolah citra. Dimana pada komputer-komputer saat ini sudah hampir dikatakan memenuhi standart spesifikasi untuk melakukan pengolahan citra. Namun kenyataanya masih banyak perangkat yang lainnya yang perlu kita lengkapi untuk melakukan pengolahan citra, bukan hanya sekedar komputer, melainkan perangkat-perangkat lainnya yang tidak include dalam sebuah komputer atau PC.


Pengertian Thinning
Thinning merupakan salah satu image processing yang digunakan untuk mengurangi ukuran dari suatu image (image size) dengan tetap mempertahankan informasi dan karakteristik penting dari image tersebut. Hal ini diimplementasikan dengan mengubah image awal dengan pola binary menjadi representasi kerangka (skeletal representation) image tersebut.
Thinning merupakan tahapan yang penting dalam proses image processing. Hal ini dikarenakan prosedur thinning memainkan peranan yang penting dalam suatu ruang lingkup yang luas dari masalah yang timbul dalam image processing. Ruang lingkup tersebut dapat bermula dari pengawasan otomatis dari sirkuit yang dicetak sampai pada penghitungan serat-serat asbes dalam penyaring udara.
Representasi kerangka dari suatu image—hasil dari proses thinning—memiliki sejumlah sifat dan ciri-ciri yang bermanfaat, diantaranya ukurannya yang kecil (karena pengurangan jumlah data dalam jumlah yang besar) dan pertahanan komponen struktur utama dari pola tersebut (komponen-komponen tersebut dapat digunakan pada saat penganalisaan bentuk).


Metodologi Image-Thinning
Metodologi dari thinning diartikan sebagai algoritma-algoritma atau prosedur-prosedur yang dapat digunakan untuk melakukan proses thinning tersebut. Suatu metode (algoritma/ prosedur) thinning yang baik seharusnya melindungi dan mempertahankan topologi, panjang, dan orientasi dari image yang di-thinning. Sementara itu, hasil proses thinning (skeletal representation) seharusnya mampu merepresentasikan fitur-fitur utama seperti penggabungan, pojok (sudut), dan titik akhir.
Secara umum, image-thinning berguna untuk mengurangi tresholded citra output yang dihasilkan dari edge detector, menjadi garis dengan ukuran ketebalan satu pixel saja. Untuk mewujudkan kegunaan ini, terdapat algoritma sederhana yang dapat diaplikasikan, yakni sebagai berikut:
Umpamakan semua piksel pada batas-batas daerah foreground (contohnya titik-titik pada foreground hanya memiliki satu background neighbour. Hapus semua titik yang memiliki foreground neighbour lebih dari satu. Lakukan berulang-ulang sampai konvergen.
Atau dengan rumus sederhana: thin (i, j) = i – hit -dan-miss (i, j)
Algoritma ini tidak bisa memberikan efek pada pixel-pixel di akhir garis. Cara ini dapat disempurnakan dengan cara melakukan hit-dan-miss dengan struktur elemen yang dirotasikan 900.


Implementasi Process thinning
Pada proses implementasi ini kami menggunakan OpenCV untuk melakukan proses thinning, dengan melakukan langkah-langkah sebagai berikut :
Pertama tulis atau ketikkan Syntax  atau codingan seperti berikut :

/**
 * Code for thinning a binary image using Zhang-Suen algorithm.
 */
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

/**
 * Perform one thinning iteration.
 * Normally you wouldn't call this function directly from your code.
 *
 * @param  im    Binary image with range = 0-1
 * @param  iter  0=even, 1=odd
 */
void thinningIteration(cv::Mat& im, int iter)
{
    cv::Mat marker = cv::Mat::zeros(im.size(), CV_8UC1);

    for (int i = 1; i < im.rows-1; i++)
    {
        for (int j = 1; j < im.cols-1; j++)
        {
            uchar p2 = im.at<uchar>(i-1, j);
            uchar p3 = im.at<uchar>(i-1, j+1);
            uchar p4 = im.at<uchar>(i, j+1);
            uchar p5 = im.at<uchar>(i+1, j+1);
            uchar p6 = im.at<uchar>(i+1, j);
            uchar p7 = im.at<uchar>(i+1, j-1);
            uchar p8 = im.at<uchar>(i, j-1);
            uchar p9 = im.at<uchar>(i-1, j-1);

            int A  = (p2 == 0 && p3 == 1) + (p3 == 0 && p4 == 1) +
                     (p4 == 0 && p5 == 1) + (p5 == 0 && p6 == 1) +
                     (p6 == 0 && p7 == 1) + (p7 == 0 && p8 == 1) +
                     (p8 == 0 && p9 == 1) + (p9 == 0 && p2 == 1);
            int B  = p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9;
            int m1 = iter == 0 ? (p2 * p4 * p6) : (p2 * p4 * p8);
            int m2 = iter == 0 ? (p4 * p6 * p8) : (p2 * p6 * p8);

            if (A == 1 && (B >= 2 && B <= 6) && m1 == 0 && m2 == 0)
                marker.at<uchar>(i,j) = 1;
        }
    }

    im &= ~marker;
}

/**
 * Function for thinning the given binary image
 *
 * @param  im  Binary image with range = 0-255
 */
void thinning(cv::Mat& im)
{
    im /= 255;

    cv::Mat prev = cv::Mat::zeros(im.size(), CV_8UC1);
    cv::Mat diff;

    do {
        thinningIteration(im, 0);
        thinningIteration(im, 1);
        cv::absdiff(im, prev, diff);
        im.copyTo(prev);
    }
    while (cv::countNonZero(diff) > 0);

    im *= 255;
}

/**
 * This is an example on how to call the thinning function above.
 */
int main()
{
    cv::Mat src = cv::imread("horse.png");
    if (src.empty())
        return -1;

    cv::Mat bw;
    cv::cvtColor(src, bw, CV_BGR2GRAY);
    cv::threshold(bw, bw, 10, 255, CV_THRESH_BINARY);

    thinning(bw);

    cv::imshow("src", src);
    cv::imshow("dst", bw);
    cv::waitKey(0);

    return 0;
}



Setelah mengetikkan syntax seperti diatas, maka kita jalankan lalu kita build program tersebut. Apabila build tersebut telah berhasil, lalu lakukan debug program dimana saat melakukan debug makan secara otomatis program tersebut akan berjalan.

Output