1、什麼是gocw
2、gocw有什麼特點
3、gocw在vs中的環境配置
其中,gocw是類庫檔案,而winform_demo是引用範例。
使用vs2017或者更高版本開啟winform_demo.sln(或新建winform程式),在「引用」處新增gocw的引用。
特別需要注意,正確編譯gocw需要opencv的正確配置,所以需要正確設定include和lib,並且保證對應版本的dll檔案能夠被正確訪問。
特別需要注意1:保證dll和csharp程式的.net目標框架是一致的
特別需要注意2:保證dll和csharp程式的.net目標框架是一致的
配置管理器中,所有專案版本全部使用64位
4、測試**
可以直接參考 winfrom_demo
新增gocw的標頭檔案
usinggocw;
編寫gocw呼叫**,你也可以根據需要吧client的定義放在form中。你實際使用過程中需要修改lena的位址。
privatevoidbutton1_click(object sender, eventargs e)
可以看到,實現了「灰度」變化。
5、原理簡介
gocw是通過clr的方式進行呼叫,關於clr的原理這裡不展開。重點將一下你在**新增影象處理演算法,開啟
gocw.**件
#pragmaonce
#include"opencv.hpp"
#usingusingnamespacesystem;usingnamespacesystem
::data;usingnamespacesystem
::io;usingnamespacesystem
::drawing;usingnamespacesystem
::drawing
::imaging;usingnamespacestd;namespacegocw */intgocwclass
::alltest(inta,intb,int* c);
//3.引用傳遞字串
system
::string
^ gocwclass
::allteststr(system
::string
^ inputstr);
/業務函式//
/*unsafe
else
}*/
bitmap
^ gocwclass
::fetchresult(cli
::array
<unsignedchar>
^ pcbuf1,int* errorcode);
};
}
這裡以「三明治」的方法將各種實現的方法進行了申明,具體的實現在gocw.cpp中,比如我們舉乙個例子。
//1.傳遞影象
bitmap
^ gocwclass
::testmethod(cli
::array
<unsignedchar>
^ pcbuf1)
在這段**中
mat draw
= img_object.clone();
cvtcolor(draw, draw, color_bgr2gray);
cvtcolor(draw, draw, color_gray2bgr);
是具體業務函式,可以根據實際演算法要求進行修改。關於引數的傳入傳出,在其他幾個函式中都有說明。
6、初步小結
雖然gocw相比較opencvsharp複雜一點,但是它能夠和現有系統更緊密結合,優勢也非常明顯。
如果你首先是影象處理開發者,需要為演算法尋找乙個可以執行的平台,那麼gocw基於clr的封裝形式,肯定更適合你!
感謝閱讀至此,希望有所幫助!
在Visual C 中使用openCV
新建c 工程後,在工程屬性的vc directories中的include directories裡新增c opencv build include。也可以在c 下的additional include directories裡新增。在library directories裡新增c opencv b...
在go中使用leveldb levi
當前版本的leveldb沒有帶安裝指令碼,需自行編譯安裝,過程如下 不知道為什麼,如果把leveldb的相關檔案放在 usr local對應的檔案下,安裝levigo怎麼也通不過,求路過大俠指點迷津。執行,會跑出如下錯誤 env posix.cc text 0x1e undefined refere...
在Qt中使用opencv庫
查閱了很多的方法,編譯了很多次,發現還是不行。我使用qt5.2.1,vs2010,opencv2.3.1 1.用cmake編譯時候會出現 因為實在改不來這裡說的錯誤,我就試了所有可以用的opencv不同的版本,發現還是會有錯。2.問過同事後發現其實很簡單就可以使用opencv庫 只要在pro檔案中新...