安装
安装
1 | Install-Package OpenCvSharp4 -Version 4.8.0.20230708 |
识别
1 | public static double Same(Mat image1, Mat image2) |
在识别之前,我们要把字符的图片调整为高度一致,宽高固定的图片
1 | public static Mat GetMat20(Mat oldMat) |
目前识别的结果是
8和B ]和1会识别错误
OCR模型
这个库在识别区域文字片段的时候能识别大多数,但是没有返回位置,并且如果识别单字符总是识别不出来。
https://gitee.com/leoseven/tessdata/tree/master
1 | Install-Package Tesseract -Version 5.2.0 |
识别
1 | Bitmap bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(img2); |
KNN与Microsoft.ML
https://www.jianshu.com/p/c39478dfb324
OpenCV本身在C#中并不直接提供KNN分类器的训练接口。
如果要训练可以使用
- C#的
Microsoft.ML
。 - 在Python中使用
OpenCV的KNN
。
OpenCV
的 KNN 和 Microsoft.ML
(ML.NET)都是用于机器学习的工具,但它们在功能和适用场景上有些不同。
OpenCV 的 KNN:
- 定位: OpenCV 是一个开源计算机视觉库,主要用于图像处理和计算机视觉任务。
- 功能: OpenCV 提供了 K-Nearest Neighbors (KNN) 算法的实现,适用于图像分类、目标检测等视觉任务。
- 优点: 对于计算机视觉和图像处理领域,OpenCV 提供了丰富的功能和优化,适合在图像数据上使用 KNN。
Microsoft.ML (ML.NET):
- 定位: ML.NET 是微软开发的一个开源机器学习框架,适用于各种机器学习任务,尤其是在.NET平台上的应用。
- 功能: ML.NET 提供了多种机器学习算法,包括分类、回归、聚类等。它的 KNN 实现可以用于各种数据类型,不限于图像。
- 优点: 如果你在.NET生态系统中工作,ML.NET 可以很好地集成到你的应用中,支持更多的机器学习任务,并且具有良好的文档和社区支持。
总结:
如果你的主要任务是计算机视觉相关的应用,那么 OpenCV 的 KNN 可能会更合适,因为它在处理图像数据方面有很好的优化。
如果你需要在 .NET 环境中进行各种机器学习任务,ML.NET 会更适合,它提供了更多的功能和灵活性。