loading...

Sabtu, 25 Agustus 2018

BAB 3 - Framework AForge dan Accord Net

Pengembangan aplikasi yang besar  biasanya terdiri dari beberapa proses yang rumit dan kompleks. Seringkali terdapat banyak algoritma dan code yang dibuat oleh pihak lain atau bahkan membuat sendiri.
Tentu ada sebagian programer yang lebih menyukai untuk mengembangkan sendiri tapi hal ini akan menjadi sedikit masalah bila ada yang ingin melanjutkan project, maka programer tersebut harus mempelajari “cara  kerja” code yang dibuat oleh programer sebelumnya. Hal ini dapat dipersingkat jika kita menerapkan framework atau sering disebut kerangka kerja. Misalkan bilamana ada orang yang ingin melanjutkan suatu project (telah menggunakan framework), maka orang tersebut telah paham “cara kerja” nya sehingga pekerjaan menjadi fokus. Ada anggapan bahwa terkadang membuat (menulis) code lebih mudah daripada merawat code. Framework bukan saja sebuah library (pustaka) tapi merupakan kerangka kerja menyeluruh sehingga diharapkan pengembang aplikasi yang akan menggunakannya menjadi  “rapi dan seragam” walau berbeda-beda programmernya dikarenakan progammer diharuskan untuk mengikuti framework. Ada banyak framework untuk pengembangan aplikasi yang fokus terhadap pengolahan citra dan salah satu yang terkenal adalah AForge.Net dan Accord.Net. Anda dapat mendownload di http://www.aforgenet.com/ atau  http://code.google.com/p/aforge. AForge didesain untuk pengembangan dan periset yang mengkhususkan diri di Computer Vision dan Artificial Intelligence sedangkan  Accord  merupakan extends (perluasan) dari AForge, anda dapat mengunjungi di  http://code.google.com/p/accord/.

Modul AForge dan Accord   

Fitur framework AForge
  1. AForge.Imaging - library with image processing routines and filters   
  2. AForge.Vision - computer vision library   
  3. AForge.Neuro - neural networks computation library   
  4. AForge.Genetic - evolution programming library   
  5. AForge.Fuzzy - fuzzy computations library   
  6. AForge.MachineLearning - machine learning library   
  7. AForge.Robotics - library providing support of some robotics kits   
  8. AForge.Video - set of libraries for video processing
Fitur framework Accord
  1. Scientific Computing: Accord.Math; Accord.Statistics; Accord.MachineLearning;  Accord.Neuro
  2. Signal and Image Processing:  Accord.Imagng;  Accord.Audio; Accord.Vision
  3. Support Librarie: Accord.Controls; Accord.Controls.Imaging;  Accord.Controls.Audio;     Accord.Controls.Vision
Framework AForge dan Accord secara cerdas dalam semua operasi citra nya menggunakan input berupa class Image dan Bitmap tanpa menggunakan matrix sebagai nilai argumennya. Class dasar yang disediakan oleh Accord yaitu
  1. Menampilkan citra menggunakan ImageBox
  2. Konversi citra kedalam matrix dan sebaliknya menggunakan ImageToMatrix, MatrixToImage
  3. Menampilkan matrix kedalam MessageBox dan kedalam DataGridBox
  4. Operasi matrix
Sedangkan untuk operasi konversi lainnya, bisa menggunakan AForge yaitu
  1. Operasi mengubah citra truecolor ke graycolor
  2. Operasi black white
  3. Operasi filtering, morphologi (akan dibahas pada bab selanjutnya)

Spesifikasi hardware dan software

Untuk saat ini penulis menggunakan CPU berikut
  1. Intel(R) Core(TM) i3-2120 CPU @3.30Gzh 3.30
  2. System Type: 64-bit Operating System, x64-based processor
  3. Windows 10 Home, version 1803, OS Build 17134.228
  4. AForge version 2.2.5
  5. Accord version 3.8
Silahkan untuk mengunjungi link berikut
http://www.aforgenet.com/framework/downloads.html
Pilihlah Library Only
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/aforge/AForge.NET%20Framework-2.2.5-(libs%20only).zip
Kemudian extract AForge.NET Framework-2.2.5-(libs only).zip, maka terdapat folder Release yang berisi *.dll yang siap kita gunakan untuk aplikasi kita

Juga link berikut http://accord-framework.net/, pilihlah archive saja
https://github.com/accord-net/framework/releases/download/v3.8.0/Accord.NET-3.8.0-archive.rar
Kemudian extract Accord.NET-3.8.0-archive.rar,  juga terdapat folder Release, akan tetapi terdiri dari banyak folder sesuai dengan versi NET Framework yang akan menjadi target kita, penulis menggunakan Net45 saja karena pertimbangan dari versi yang sering digunakan oleh beberapa OS Windows

Baca Juga : Cara menambahkan library https://msdn.microsoft.com/en-us/library/ez524kew.aspx


Aplikasi Image Viewer berbasis Console

Kita akan belajar mengenai cara membuat aplikasi berikut
http://www.aforgenet.com/framework/samples/downloads/FiltersDemo.zip
Silahkan untuk download saja dan ujicoba sendiri, serasa kita akan membuat aplikasi seperti photoshop!


Nah kita akan membuat aplikasi berbasis CLI saja bukan Windows Form agar mudah dalam memahami alurnya. Untuk menampilkan gambar, cukup menggunakan ImageBox
http://accord-framework.net/docs/html/M_Accord_Controls_ImageBox_Show_8.htm

Sedangkan jenis filter yaitu
http://www.aforgenet.com/framework/docs/html/cdf93487-0659-e371-fed9-3b216efb6954.htm

Silahkan untuk membuat project, gunakan Net Framework seperti berikut


Solution Name: Image Viewer

Tambahkan beberapa Library berikut


Berikut code lengkapnya

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing.Imaging;
using System.Drawing;
using AForge;
using AForge.Imaging.Filters;
using Accord.Controls;

namespace Image_Viewer
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Bitmap image = (Bitmap)Bitmap.FromFile("D:/image.jpg");
            Accord.Controls.ImageBox.Show(image);
            Console.ReadLine();
        }
    }
}


Coba modifikasi dengan efek blur berikut



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing.Imaging;
using System.Drawing;
using AForge;
using AForge.Imaging.Filters;
using Accord.Controls;

namespace Image_Viewer
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Bitmap image = (Bitmap)Bitmap.FromFile("D:/image.jpg");
            Blur filter = new Blur();
            // apply the filter
            filter.ApplyInPlace(image);
            Accord.Controls.ImageBox.Show(image);
            Console.ReadLine();
        }
    }
}


Baca juga : http://www.aforgenet.com/framework/docs/html/be5cfa72-caa1-205b-d282-9abe2fc1c19b.htm dan  http://www.aforgenet.com/framework/docs/html/3b7d8422-2d79-8019-8933-a0472040c124.htm

Hem.. biar lebih bagus, kita bisa tampilkan 2 image sekaligus dan diberikan setTitle(), nah perlu modifikasi code agar tidak terblock secara memory yaitu new Bitmap()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing.Imaging;
using System.Drawing;
using AForge;
using AForge.Imaging.Filters;
using Accord.Controls;

namespace Image_Viewer
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Bitmap image = (Bitmap)Bitmap.FromFile("D:/image.jpg");
            Accord.Controls.ImageBox.Show(new Bitmap(image)).SetTitle("Original");
            Blur filter = new Blur();
            // apply the filter
            filter.ApplyInPlace(image);
            Accord.Controls.ImageBox.Show(new Bitmap(image)).SetTitle("Blur");
            Console.ReadLine();
        }
    }
}

Nah pada http://www.softscients.web.id/2018/08/bab-3-framework-aforge-dan-accord-net.html
Kita sudah belajar 3 hal sekaligus yaitu pemanfaatan secara bersama-sama library AForge dan Accord; menampilkan Image, serta modifikasi nya


Cukup mudah bukan?

Tidak ada komentar: