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库。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)