• Like
Tentang framework a forge.net
Upcoming SlideShare
Loading in...5
×

Tentang framework a forge.net

  • 620 views
Uploaded on

framework Aforge.net

framework Aforge.net

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
620
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Framework AForge.NetOleh: mulkan.ms@gmail.comhttp://softscients.blogspot.comJika anda menggunakan tools C# (languange) sebagai olah citra dan FrameworkAForge.Net dan Accord.Net sangat bekerja dengan cepat sekali untuk melakukankomputasi.Why!Setelah melakukan explore (hanya karena) ingin mengetahui nilai pixel dari suatucitra, mereka (framework AForge.Net dan Accord.Net) tidak satupun menyediakanclass untuk itu. Hampir semua operasi olah citra menggunakan argument classImage. Misalkan filter (menggunakan convolution)AForge.Imaging.Filters.Dilatation dilation=new AForge.Imaging.Filters.Dilatation();dilation.Apply(image)
  • 2. atau menggunakan cara berikut// define emboss kernel int[,] kernel = { { -2, -1, 0 }, { -1, 1, 1 }, { 0, 1, 2 } }; // create filter AForge.Imaging.Filters.Convolution filter = new AForge.Imaging.Filters.Convolution( kernel );
  • 3. Dikarenakan semua menggunakan Class Image sebagai inputannya bukan matrixatau array sangat menyulitkan bagi pemula yang ingin bereksperimen (daripadamenggunakan Matlab). Hampir semua proses read and writel pixel didalam methodtersebut dan langsung mengembalikan Image sebagai output argument nya.Matlab menggunakan berbagai class untuk mempresentasikan data image yaituLogical = 1 dan 0Uint8 = 1 sampai 255Double = 0 sampai 1Sedangkan JImageFormat.Logical = 1 dan 0Format.Uint8 = 1 sampai 255Format.Float = 0 sampai 1Hal diatas akan menjadi ambigu, misalkan pada komputasi untuk filter dilation(penulis ingin melakukan penebalan - mode biner) maka output daridilation.Apply(image) adalah image maka yang akan tampil bukan 0 (hitam) dan 1(putih) tapi 255 (putih)  ini sangat benar sekali dikarenakan logical hanya untukproses morphologi saja bukan untuk format file image (disimpan / disajikan kestandar monitor), maka bila pada mode logical nilai 1 (putih) akan langsung dikonvertke 255. Yah bagi orang yang paham akan mudah sekali, tapi bagi orang awam akanmenjadi membingungkan (mungkin yang diharapkan adalah bilangan logical)
  • 4. Seringkali kita dihadapkan kasus untuk melakukan komputasi convolution yangmenggunakan berbagai filter (komputasi morpologi dilation + blob to count of items)sebelum hasil akhir nya ditampilkan sebagai Image. Jika anda ingin dalam formatarray2D (matrix), maka anda harus siap-siap lihat source code nya kalau tidak inginmelakukan dalam format class Image.//init fileBitmap bitmap=new Bitmap("D:/New Picture (1).bmp");//init blobAForge.Imaging.BlobCounter blobs=new AForge.Imaging.BlobCounter(bitmap);//show afternew Ext.Utility.ShowImage().InitShow(new MyDataBitmap("original jumlah objek before dilation"+blobs.ObjectsCount.ToString(),bitmap,2000));
  • 5. //init dilateAForge.Imaging.Filters.Dilatation dilation=new AForge.Imaging.Filters.Dilatation();Bitmap postDilation=dilation.Apply(bitmap);//init blobblobs=new AForge.Imaging.BlobCounter(postDilation);//shownew Ext.Utility.ShowImage().InitShow(new MyDataBitmap("jumlah objek after dilation "+blobs.ObjectsCount.ToString(),postDilation,3000));Class new Ext.Utility.ShowImage().InitShow() merupakan class yang dibuat olehpenulis untuk menampilkan mulitple Windows Form pada modus console (miripdengan imshow pada matlab).HistogramClass Histogram (ambigu) hanya menyediakan komputasi statistik biasa sepertistd,mean,max,min,total tidak menyediakan histogram (nilai sebaran).Form diatas (dibuat oleh penulis menggunakan ZedGraph)KesimpulanSeperti yang sudah dipaparkan sebelumnya bahwa, a. kebanyakan class seringkali menggunakan class Image sebagai argument input bukan matrix. Framework langsung melakukan “bedah” pixel dari Image langsung didalam method tersebut serta menghasilkan output berupa class Image b. belum adanya class yang menyediakan read dan write value pixel, sehingga semua menggunakan class Image. Anda harus membuat class tersendiri bila menginginkannya Bitmap bitmap=new Bitmap("D:/hasil.bmp"); Ext.ReadImage readImage=new ReadImage(bitmap); byte[,]r=readImage.Red; byte[,]g=readImage.Green; byte[,]b=readImage.Blue;
  • 6. //create truecolor byte[,]red=new byte[255,255]; byte[,]green=new byte[255,255]; byte[,]blue=new byte[255,255]; for(int i=0;i<red.GetLength(0);i++) { for(int j=0;j<red.GetLength(1);j++) { red[i,j]=(byte)j; if(i>100) green[i,j]=(byte)j; //red[i,j]=(byte)j; } } Ext.CreateImage create=new Ext.CreateImage(red,green,blue); Bitmap bitmap=create.Btmp; new Ext.Utility.ShowImage().InitShow(new MyDataBitmap("true color ",bitmap,2000)); //create gray color byte[,]gray=new byte[256,256]; for(int i=0;i<gray.GetLength(0);i++) { for(int j=0;j<gray.GetLength(1);j++) { gray[i,j]=(byte)i; } } Ext.CreateImage create=new Ext.CreateImage(gray); Bitmap bitmap=create.Btmp; new Ext.Utility.ShowImage().InitShow(new MyDataBitmap("gray ",bitmap,2000));Note:Package Ext. merupakan class yang dibuat oleh penulis untuk memudahkan dalamolah citra di C# dalam modus console application