大家都知道OpenCV是一个跨平台的机器视觉和机器学习的开源库,可以运行在Linux、Windows、Android和Mac OS操作系统上,由C++开发。
今天给大家介绍一个用C#对OpenCV封装的处理库。
项目简介它是OpenCV的.NET封装版本,项目名称为EmguCV,它使得.NET开发人员能够调用OpenCV函数,从而快速建立复杂的视觉应用。EmguCV库包括视觉的许多领域,如工厂产品检验、医学影像、用户接口、摄像机标定、立体视觉和机器人等。
(资料图片仅供参考)
核心功能图像处理:提供了各种图像处理功能,如图像滤波、二值化、色彩空间转换、图像增强等。
计算机视觉:支持各种计算机视觉算法,如特征提取、目标检测、跟踪、人脸识别等。
模式识别:提供了模式识别算法,如支持向量机(SVM)、随机森林等。
深度学习:支持深度学习算法,如卷积神经网络(CNN)、循环神经网络(RNN)等。
OCR:可以结合Tesseract OCR引擎实现光学字符识别(OCR)功能,将图像中的文字转换为可编辑和可搜索的文本。
视频处理:提供了视频处理功能,如视频帧提取、视频编解码等。
几何变换:支持各种几何变换算法,如平移、旋转、缩放等。
图像分割:提供了各种图像分割算法,如基于阈值的分割、基于区域的分割等。
项目文件项目特点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
更多开源项目请查看:一个专注推荐优秀.Net开源项目的榜单
最后推荐下,我现在正在编写教程:《.Net Core从零学习搭建权限管理系统教程》。
- End -
文章首发于公众号【编程乐趣】,欢迎大家关注。
关键词:
Copyright 2015-2022 南方供销网版权所有 备案号: 粤ICP备18023326号-21 联系邮箱:855 729 8@qq.com