在C 中使用OpenCV(使用GOCW)

2021-10-13 07:39:44 字數 3078 閱讀 2946

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檔案中新...