C#用Tesseract进行OCR识别,可识别中英日韩所有语言
源码下载:https://download.csdn.net/download/horseroll/10739546 源码下包含部分语言包,所以文件比较大
无积分付费下载地址:https://download.csdn.net/download/HorseRoll/21113304
先上效果图。测试中文英文日语识别,其他语言也都行,只要下载相应的语言包,操作使用后面都有讲
1.首先在Nuget中搜索Tesseract,下载到项目中
2.下载相应的语言包放至Debug/tessdata文件夹下,Tesseract语言包下载地址:https://github.com/tesseract-ocr/tesseract/wiki/Data-Files#data-files-for-version-302
3.代码操作
首先先初始化类,设置语言
TesseractEngine ocr;
ocr = new TesseractEngine("./tessdata", "chi_sim");//设置语言 中文
//ocr = new TesseractEngine("./tessdata", "eng", EngineMode.TesseractAndCube);//设置语言 英文
//ocr = new TesseractEngine("./tessdata", "jpn");//设置语言 日语
导入图片进行识别
Bitmap bit = new Bitmap(Image.FromFile(filename.FileName.ToString()));
//bit = PreprocesImage(bit);//进行图像处理,如果识别率低可试试
Page page = ocr.Process(bit);
string str = page.GetText();//识别后的内容
page.Dispose();
图片处理算法,如果是识别数字,识别率低可以试试这个方法
/// <summary>
/// 图片颜色区分,剩下白色和黑色
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
private Bitmap PreprocesImage(Bitmap image)
{//You can change your new color here. Red,Green,LawnGreen any..Color actualColor;//make an empty bitmap the same size as scrBitmapimage = ResizeImage(image, image.Width * 5, image.Height * 5);//image.Save(@"D:\UpWork\OCR_WinForm\Preprocess_Resize.jpg");Bitmap newBitmap = new Bitmap(image.Width, image.Height);for (int i = 0; i < image.Width; i++){for (int j = 0; j < image.Height; j++){//get the pixel from the scrBitmap imageactualColor = image.GetPixel(i, j);// > 150 because.. Images edges can be of low pixel colr. if we set all pixel color to new then there will be no smoothness left.if (actualColor.R > 23 || actualColor.G > 23 || actualColor.B > 23)//在这里设置RGBnewBitmap.SetPixel(i, j, Color.White);elsenewBitmap.SetPixel(i, j, Color.Black);}}return newBitmap;
}/// <summary>
/// 调整图片大小和对比度
/// </summary>
/// <param name="image"></param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <returns></returns>
private Bitmap ResizeImage(Image image, int width, int height)
{var destRect = new Rectangle(0, 0, width, height);var destImage = new Bitmap(width, height);destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution * 2);//2,3//image.Save(@"D:\UpWork\OCR_WinForm\Preprocess_HighRes.jpg");using (var graphics = Graphics.FromImage(destImage)){graphics.CompositingMode = CompositingMode.SourceOver;graphics.CompositingQuality = CompositingQuality.HighQuality;graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;graphics.SmoothingMode = SmoothingMode.HighQuality;graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;using (var wrapMode = new ImageAttributes()){wrapMode.SetWrapMode(WrapMode.Clamp);graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);}}return destImage;
}
C#用Tesseract进行OCR识别,可识别中英日韩所有语言相关推荐
- python查找文字在图片中的位置_使用Python识别图片中的中/英文字
鉴于有小伙伴咨询图片识别实现的方式,在这里给大家分享一下,并提供主要的接口. 1.准备账号 申请百度开发者平台, 获取图片文字识别, 申请地址: https://console.bce.baidu.c ...
- OCR文档识别——数据录入工厂
数据录入工厂特色 识别核心 软件内置文通科技最新研发的高性能文字识别引擎,支持中英日韩四国文字以及对英文的混排,识别率达99.8%以上. Unicode编码 采用UNICODE国际编码标准.系统可在一 ...
- Windows下使用Tesseract进行OCR文字识别
Windows下使用Tesseract进行OCR文字识别 Tesseract最初由惠普实验室支持,用于电子版文字识别,1996年被移植到Windows上,1998年进行了C++化,在2005年Tess ...
- 使用Tesseract (OCR)实现简单的验证码识别(C#)+窗体淡入淡出效果
来园子也有一段时间了,一直没时间写点东西,说实话刚开始也不知道写什么,一直以来对验证码识别比较感兴趣,曾经想着自己处理图形实现识别验证码, 不过感觉对我来说太难了,偶然中再网上发现了Tesseract ...
- android自动识别文字,Android文字识别tesseract ocr -训练样本库 识别字库
目录 安装tesseract ocr引擎和jTessBoxEditor 安装jTessBoxEditor 开始制作box 准备好训练的图片 将图片转为tif格式的样本图片 合并样本图片 修改box文件 ...
- 文本的检测、识别实战:使用 Tesseract 进行 OpenCV OCR 和文本识别
在本篇文章中,我们将使用 OpenCV.Python 和 Tesseract 执行 (1) 文本检测和 (2) 文本识别. 上篇文章,我向您展示了如何使用 OpenCV 的 EAST 深度学习模型执行 ...
- 基于Tesseract的OCR识别小程序
一.背景 先说下开发背景,今年有次搬家找房子(2020了应该叫去年了),发现每天都要对着各种租房广告打很多电话.(当然网上也找了实地也找),每次基本都是对着墙面看电话号码然后拨打,次数一多就感觉非常麻 ...
- python opencv 文字识别_文本识别 使用 Tesseract 进行 OpenCV OCR 和 文本识别
文本识别 用 Tesseract 进行 OpenCV OCR 和 文本识 在本教程中,您将学习如何应用OpenCV OCR(光学字符识别).我们将使用OpenCV,Python和Tesseract 执 ...
- 文本识别 使用 Tesseract 进行 OpenCV OCR 和 文本识别
原文链接 文本识别 使用 Tesseract 进行 OpenCV OCR 和 文本识别 在 2019年7月18日 上张贴 由 hotdog发表回复 文本识别 用 Tesseract 进行 OpenCV ...
最新文章
- c语言大顶堆数组维护,图解大顶堆的构建、排序过程
- Beep()之我迷糊了……
- PHP编译过程中常见错误信息的解决方法
- c语言结构体如何定义字母,c语言中定义结构体如何定义?
- Spring 框架基础(01):核心组件总结,基础环境搭建
- PageAdmin建站系统模板制作教程1:Razor简介
- 在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
- jpeglib的jpeg_finish_compress函数疑似越界
- Windows电脑上有哪些好用的txt小说阅读器?
- 企业信息化战略与实施(2)信息系统生命周期与战略规划方法
- 多旋翼无人机动力系统发展历程
- JavaScript 计算时间差
- iOS开发图片合成,多张图片合成一张图片
- phpmyadmin linux 安装,phpMyAdmin安装部署
- Niagara内容示例 1.3 Simple GPU Emitter
- 编码格式问题 错误:JSON parse error: Invalid UTF-8 middle byte 0x3f
- html img 图片不拉伸,固定长宽的img标签如何保持里面的图片不缩放
- jquery ajax添加ul li,jQuery.ajax动态添加标签无法被获取到
- explain ref_轻松搞定慢查询?这一文就够了(内附大量实例助你看懂Explain)
- UE4_地图程序化随机生成