当前位置: 首页 > news >正文

一个C#跨平台的机器视觉和机器学习的开源库

大家都知道OpenCV是一个跨平台的机器视觉和机器学习的开源库,可以运行在Linux、Windows、Android和Mac OS操作系统上,由C++开发。

今天给大家介绍一个用C#对OpenCV封装的处理库。

项目简介

它是OpenCV的.NET封装版本,项目名称为EmguCV,它使得.NET开发人员能够调用OpenCV函数,从而快速建立复杂的视觉应用。EmguCV库包括视觉的许多领域,如工厂产品检验、医学影像、用户接口、摄像机标定、立体视觉和机器人等。

核心功能

  1. 图像处理:提供了各种图像处理功能,如图像滤波、二值化、色彩空间转换、图像增强等。

  2. 计算机视觉:支持各种计算机视觉算法,如特征提取、目标检测、跟踪、人脸识别等。

  3. 模式识别:提供了模式识别算法,如支持向量机(SVM)、随机森林等。

  4. 深度学习:支持深度学习算法,如卷积神经网络(CNN)、循环神经网络(RNN)等。

  5. OCR:可以结合Tesseract OCR引擎实现光学字符识别(OCR)功能,将图像中的文字转换为可编辑和可搜索的文本。

  6. 视频处理:提供了视频处理功能,如视频帧提取、视频编解码等。

  7. 几何变换:支持各种几何变换算法,如平移、旋转、缩放等。

  8. 图像分割:提供了各种图像分割算法,如基于阈值的分割、基于区域的分割等。

项目文件

图片

项目特点

1、与OpenCV兼容:底层使用OpenCV库,因此它支持OpenCV的所有功能和算法。

2、高性能:通过高度优化的算法和底层优化,提供了高性能的图像处理和计算机视觉功能。

3、易于使用:提供了与.NET环境的无缝集成,使用者可以通过C#和VB等熟悉的编程语言来使用OpenCV的功能。

4、丰富的扩展:提供了许多扩展和示例,可以轻松地满足各种图像处理和计算机视觉需求。

使用示例

初始化

Tesseract ocr = new Tesseract(path, "eng.traineddata", OcrEngineMode.TesseractLstmCombined);

文字识别

ocr.SetImage(imageColor);if (ocr.Recognize() != 0)
throw new Exception("Failed to recognizer image");Tesseract.Character[] characters = ocr.GetCharacters();
if (characters.Length == 0)
{
Mat imgGrey = new Mat();
CvInvoke.CvtColor(image, imgGrey, ColorConversion.Bgr2Gray);
Mat imgThresholded = new Mat();
CvInvoke.Threshold(imgGrey, imgThresholded, 65, 255, ThresholdType.Binary);
ocr.SetImage(imgThresholded);
characters = ocr.GetCharacters();
imageColor = imgThresholded;
if (characters.Length == 0)
{
CvInvoke.Threshold(image, imgThresholded, 190, 255, ThresholdType.Binary);
ocr.SetImage(imgThresholded);
characters = ocr.GetCharacters();
imageColor = imgThresholded;
}
}
foreach (Tesseract.Character c in characters)
{
CvInvoke.Rectangle(imageColor, c.Region, drawCharColor.MCvScalar);
}return ocr.GetUTF8Text();

识别效果

图片

项目地址

https://github.com/emgucv/emgucv

- End -

推荐阅读

普通程序员要成为高级程序员,一定要学会重构

基于.NetCore开发,前端支持Layui、React、Vue且前后端分离的快速开发框架

一款统计摸鱼时长的开源项目

一个.Net简单、易用的配置文件操作库

基于.NetCore+React单点登录系统

http://www.xdnf.cn/news/603217.html

相关文章:

  • Honeywell 05701-A-0302 单通道控制卡
  • 基于DPABI提取nii文件模板的中心点坐标
  • 【论文阅读】LLaVA-OneVision: Easy Visual Task Transfer
  • vscode里几种程序调试配置
  • WebGL入门:贴图
  • iOS 主要版本发布历史
  • Spark on Yarn 高可用模式部署流程
  • 卷积神经网络(CNN)可视化技术详解:从特征学到演化分析
  • 单点击登录sso实现
  • Android Studio历史版本下载方法
  • SpringBoot3整合WebSocket
  • LIEDNet: A Lightweight Network for Low-light Enhancement and Deblurring论文阅读
  • 探索Dify:开启大语言模型应用开发新时代
  • 怎么判断一个Android APP使用了Cordova这个跨端框架
  • [SWPUCTF 2024 秋季新生赛]ret2libc也阴嘛?(NSSCTF)
  • OpenEuler-Apache服务原理
  • 如何配置jmeter做分布式压测
  • .jsx文件和.tsx文件有什么区别
  • 补题目找规律
  • uni-app/vue2:微信小程序实现文件流的下载及预览
  • Claude MCP协议从入门到精通
  • 【Hexo】2.常用的几个命令
  • MySQL别名规则与应用场景
  • Facebook + AdsPower!用一台设备实现 Facebook 多账号管理
  • Jenkins 构建日志统一上报:企业级 DevOps 管理实践
  • 科学养生:解锁现代健康生活新方式
  • 现代生活下的创新健康养生之道
  • 《计算机组成原理》——第二章-6 总线定时:同步定时(同步通信)
  • Pysnmp使用指南
  • CentOS停止维护了,解决yum不能安装软件的问题