以前在c#中做過影象灰度化,然後二值化的**,是自己寫了乙個類,呼叫處理的,現在我們有現成的emgucv,因此今天我嘗試做一下用c#只處理載入顯示等任務,而用emgucv處理灰度化和二值化。
現在已經用c#設計好基本的功能了,即載入顯示,儲存,還可以關閉。如下圖。
接下來我們呼叫emgucv處理這些。
首先是灰度化,這裡涉及到幾個技巧,即從c#中承載影象的型別轉換到emgucv中承載影象的型別;
用的函式為:
imageimg1 = newimage(curbitmap);
引數根據格式調整,這裡是把彩色的c#中curbitmap型別轉換為emgucv中的相對應的型別,接下來灰度化,處理函式為:
imagegray_image =img1.convert();
最後涉及到的是從emgucv中的承載影象的型別轉換為c#中的型別,使用的函式為:xx.tobitmap();
其中xx代表在emgucv中例項化的物件,這裡的化是存放轉換為灰度影象的img1;
所以從emgucv轉換為c#中承載類的函式寫為:
curbitmap= gray_image.tobitmap();
同理可以實現對灰度化的二值化,**貼在最後邊,下面是結果圖:
全部的**在下面,由於只是個例子,沒有特定對應的名字,看起來有些不好看,不過不要在意這些。
usingsystem;
usingsystem.collections.generic;
usingsystem.componentmodel;
usingsystem.data;
usingsystem.drawing;
usingsystem.linq;
usingsystem.text;
usingsystem.windows.forms;
usingemgu.cv;
usingemgu.cv.structure;
usingemgu.util;
namespaceimage3
private
voidmenuitem2_click(object sender, eventargs e)
catch }
invalidate();
}private
voidmenuitem3_click(object sender, eventargs e)}}
private
voidmenuitem4_click(object sender, eventargs e)
private
voidform1_paint(object sender, painteventargs e)
}private
voidmenuitem6_click(object sender, eventargs e)
}private
voidmenuitem7_click(object sender, eventargs e)}}
}
golang結合plan 9 c程式設計
這次來開下go是怎麼使用plan 9 c語言來開發一些庫的,這裡只是簡單的使用乙個簡單例子進行演示。還是看下源 吧 include runtime.h void add int32 a,int32 b,int32 r first.h 宣告first.add方法,同時引入runtime包的runtim...
動靜結合話程式設計
在 物件導向是什麼 中,說得過於抽象。看來要把問題說清楚,還得畫圖才行。前面說過,由於計算機體系結構的原因,所有的程式設計最終都會歸結為資料結構和演算法,二者一陰一陽,一靜一動,陰中有陽,陽中有陰,恰如太極圖,映 現實世界。如果用形式化的方式來表示,用圓圈表示資料,用方框表示過程,則計算的過程可以如...
用 C 做人臉檢測(基於EmguCV)
封面為野比原創,請勿未經允許私自引用 準備工作 必須 傻瓜安裝後,把 bin 目錄新增到環境變數裡去,比如安裝在 x emgucv 目錄下,就在命令列輸入這句話。1 path x emgucv bin path csharp view plain copy print?opencv 的全稱是 ope...