学习了基于OpenCvSharp获取摄像头数据,同时学习了基于IronOcr的文字识别用法,将这两者结合即是从摄像头中识别文字。本文测试C#调用OpenCvSharp和IronOcr从摄像头中识别文字的基本用法、。
新版Winform项目,在Nuget包管理器中添加以下程序集:
Hompus.VideoInputDevices
DirectShowLib.Standard
OpenCvSharp4
OpenCvSharp4.Extensions
OpenCvSharp4.runtime.win
IronOcr
IronOcr.Languages.Chinese
关键代码主要包括两部分:
1)截取摄像头图像:关键代码如下所示:
VideoCapture capture = new VideoCapture(0);
Mat image = new Mat();
capture.Read(image);
2)从图片提取文字:关键代码如下所示。
IronTesseract Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplifiedBest;
using (var input = new OcrInput(image.ToBytes()))
{
var Result = Ocr.Read(input);
txtResult.Text = Result.Text;
}
最后是程序运行效果(使用的试用版IronOcr模块,只能返回一行文本)
除了IronOcr模块,还可以使用PaddleSharp、PaddleOCRSharp、Tesseract等模块识别文本,有兴趣的可以试试。
参考文献:
[1]https://github.com/micjahn/ZXing.Net/
[2]https://github.com/shimat/opencvsharp