在C#中使用OpenCV(使用OpenCVSharp)
在C#中使用OpenCV(使用OpenCVSharp)
1、什么是OpenCVSharp
OpenCVSharp有一名日本工程师开发,项目地址为:https://github.com/shimat/opencvsharp。其是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的样例参考,其采用LGPL发行,对商业应用友好(基本上相当于BSD)。
2、OpenCVSharp有什么特点
- 直接封装了更多的OpenCV方法,降低了学习的难度,比EmguCV更便于使用
- 大部分继承了IDisposable接口,方便使用using语句
- 可以直接调用原始风格的OpenCV方法
- 可以将图像对象直接转换成GDI使用的Bitmap和WPF的WriteBitmap
- 支持Mono。
3、OpenCVSharp在VS中的环境配置
有两种方式:一种是使用NuGet(库程序包管理器)光是这种配置发布的方式就很值得借鉴;另一种直接下载安装包。
第一种方式:使用NuGet(库程序包管理器),首先打开VS,在【工具】选项中是否有【库程序包管理器】
没有的话自己去安装好NuGet.
https://jingyan.baidu.com/article/066074d636fd19c3c21cb0a2.html(转载自百度)
安装好之后,打开【工具】->【库程序包管理器】->【管理解决方案的NuGet程序包】,在其中搜索OpenCVSharp,选择合适的点击【安装】(最好安装最新的)。一直等待完成。
完成安装之后,需要将安装文件的DLL文件放置在项目可执行文件的Debug文件夹下,怎么去找安装好的文件呢
第二种方式是直接下载安装包
https://github.com/shimat/opencvsharp/releases
下载好之后解压到一个文件夹(任意的文件夹)
文件安装好之后,在【解决方案】中右键【引用】->【添加引用】,选择【浏览】,将下载文件中的OpenCvSharp.dll文件添加进引用。
将下载文件中的OpenCvSharpExtern.dll复制到可执行文件的Debug文件夹下,所有配置OK,下面测试是否配置成功。
注意这里,如果使用第一种方式,它是自动为你拷贝DLL文件;如果使用第二种方式,需要自己拷贝。
4、测试代码
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp; //添加相应的引用即可
namespace OpenCVSharpTest2
{
class Program
{
static void Main(string[] args)
{
Mat source = new Mat(@"1.bmp", ImreadModes.Color);
Cv2.ImShow("Demo", source);
Cv2.WaitKey(0);
}
}
5、原理初探
在初步了解了OpenCVSharp的实现效果后,除了感到惊艳、我更想知道它是如何实现的,毕竟我在GOCW上想了很多方法、花了不少时间。
6、初步小结
虽然OpenCVSharp相比较emgucv的确非常精简,但是也有较大的代码容量,主要是因为一旦想把OpenCV移植过来,不可避免地需要做很多重复的工作——而且OpenCV的每次升级
可能这边都需要同步升级。所以我仍然认为GOCW的方法是更合适的,也就是接口程序之负责接口的事情,不要做重新发明轮子的工作。
目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AI芯片业界新风口,为什么被全世界看好?
如果说2016年3月份阿尔法狗大战李世石的人机大战只在科技圈造成影响,那么2017年阿尔法狗与柯洁的对战则将人工智能带入到人民大众的视线了,阿尔法狗是第一个击败人类职业围棋选手,第一个战神围棋世界冠军的人工智能程序,其主要工作原理是“深度学习”。在深度学习神经网络模型为基础的人工智能技术出现后,大数据、物联网、工业4.0及增强和虚拟现实这几大热门领域被整合进人工智能这一更大的发展框架内。当前,人工智能技术仍旧需要海量数据来训练神经网络模型,从而使得计算机能够代替人类从事各种数据处理与判断。飞速发展的物联网技术首先提供了大量的数据来源,经过设计集合训练好的人工智能系统则提供了工业4.0最需要的智能控制系统,也为增强和虚拟现实场景的落地提供了数据处理的技术手段。 其中芯片是人工智能系统最关键的技术,芯片作为一个产品的核心,就像是人的大脑一样,重要性不言而喻,在很多领域,人工智能芯片已经走进我们的生活,会很多高铁站启用人脸识别来检票,智能家居中的语音音箱,陪护机器人等,人工智能芯片的发展决定着整个行业的走向。在人工智能芯片领域,国外芯片巨头占据了绝大部分的市场份额,不论是在人才聚集还是公司合...
- 下一篇
开学季:20本Python经典书单
Python非常灵活,让实验变得容易。解决简单问题的方法简单而优雅。Python为新手程序员提供了一个很好的实验室。 Python具有一些特征,使其成为第一种编程语言的接近完美的选择。Python基本结构简单、干净、设计精良,使学生能够专注于算法思维和程序设计的主要技能,而不会陷入晦涩难解的语言细节。在Python中学习的概念可以直接传递给后续学习的系统语言(如C ++和Java)。但Python不是一种“玩具语言”,它是一种现实世界的生产语言,可以在几乎每个编程平台上免费提供,并且具有自己易于使用的集成编程环境。最好的是,Python让学习编程又变得有趣了。 这20本Python书单让你快速掌握Python编程。 《Python神经网络编程》 [英] 塔里克·拉希德(Tariq Rashid)著 本书用轻松的笔触,一步一步揭示了神经网络的数学思想,并介绍如何使用Python编程语言开发神经网络。本书将带领您进行一场妙趣横生却又有条不紊的旅行——从一个非常简单的想法开始,逐步理解神经网络的工作机制。您无需任何超出中学范围的数学知识,并且本书还给出易于理解的微积分简介。 本书为美亚五星畅...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果