CSharp Archive

通过CLR在VC#项目中调用Opencv C++代码

在VC#项目中调用Opencv c++代码应该是一个比较常见的需求。C#有丰富的UI,而VC++ opencv则几乎没有UI。C#中虽然可以支持Emgucv,但是与原生态的opencv相比,我更愿意选择opencv。Use OpenCV C++ codes in a VC# project — solution of creating a managed CLR wrapper一文中讲到了在VC#项目中调用Opencv C++代码的方法,本文记录我验证此文的过程,翻译原文为主,有部分改动,感谢原作者。

EmguCv在VS2012中的配置方法_CSharp_win7

EmguCv 将OpenCv的绝大部分功能都包装成了.net类CvInvoke,该类使得CSharp可以直接调用OpenCv的函数,在这个类中的函数均对应于OpenCv中的同名函数。《验证码识别之C#图像识别类库tessnet2》一文中提及tessnet2识别前景与背景对比度差的图片能力不佳,理论上而言,如果验证码的图片可以成功二值化,那么tessnet2的识别率应该会高一些。因此,我开始尝试折腾EmguCv,试用成功,记录下试用过程,供需要的同学参考。
Fork me on GitHub