C 結合EmguCv程式設計

2021-06-21 16:06:21 字數 1686 閱讀 3716

以前在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...