Skip to content Skip to footer

OpenCVSharp介绍

OpenCvSharp 是一个OpenCV的.Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,有详细的使用样例供参考。该库采用LGPL发行,对商业应用友好。使用OpenCvSharp,可用C#,VB.NET等语言实现多种流行的图像处理(image processing)与计算机视觉(computer vision)算法。

特点

1.相较于SharperCV与OpenCVDotNet,OpenCvSharp直接封装了更多的OpenCV方法,降低学习难度。

2.大部分了继承了IDisposable接口,方便使用using语句块。

3.不强加面向对象思维,可以直接调用原生风格的OpenCV方法。

4.可以将IplImage直接转为Bitmap(GDI+) 或者WriteableBitmap(WPF)。

5.支持Mono。可以运行于支持Mono的任何平台上(如Linux,BSD,Mac OS X等)。

例程

以下代码使用Canny算法寻找输入图像的边缘信息:

1 usingSystem;

2 usingOpenCvSharp;

3

4 classProgram

5 {

6 staticvoidMain()

7 {

8 using(IplImagesrc=newIplImage("lenna.png",LoadMode.GrayScale))

9 using(IplImagedst=newIplImage(src.Size,BitDepth.U8,1))

10 {

11 src.Canny(dst,50,200);

12 using(CvWindowwindow_src=newCvWindow("srcimage",src))

13 using(CvWindowwindow_dst=newCvWindow("dstimage",dst))

14 {

15 CvWindow.WaitKey();

16 }

17 }

18 }

19 }

同样支持原生样式的函数。有经验的OpenCV使用者可以轻松上手OpenCvSharp:

1 usingSystem;

2 usingOpenCvSharp;

3

4 classProgram

5 {

6 staticvoidMain()

7 {

8 IplImagesrc=Cv.LoadImage("lenna.png",LoadMode.GrayScale);

9 IplImagedst=Cv.CreateImage(newCvSize(src.Width,src.Height),BitDepth.U8,1);

10 Cv.Canny(src,dst,50,200);

11 Cv.NamedWindow("srcimage");

12 Cv.ShowImage("srcimage",src);

13 Cv.NamedWindow("dstimage");

14 Cv.ShowImage("dstimage",dst);

15 Cv.WaitKey();

16 Cv.DestroyAllWindows();

17 Cv.ReleaseImage(src);

18 Cv.ReleaseImage(dst);

19 }

20 }

运行环境要求

1..NET Framework 2.0 或 Mono

2.Visual C++ 2008 SP1 Redistributable Package 或 Visual C++ 2010 SP1 Redistributable Package

3.OpenCV 2.x / 1.1pre

使用者需要自行下载并安装与OpenCvSharp版本一致的OpenCV库。