使用IronOCR识别图片文字
最近实验课要做一个图片文字识别
,需求是Winform中有一个图片,进行框选后,识别框选中的内容,老师提示说去找OCR的开源库,所以我就找到了IronOCR
IronOCR:The C# OCR Library : Iron OCR
IronOcr makes it easy to read text from images in your .net apps & websites.
1.Read text and barcodes from scanned images & PDFs
2.Supports multiple international languages
3.Output as plain text or structured data
框选
进行识别前,必须框选出识别区域,所以就要先去实现框选,思路就是通过MouseUp
、MouseMove
、MouseDown
三个事件去绘制一个矩形,类似于拖选
private bool _mouseIsDown = false;private Rectangle _selectArea = Rectangle.Empty;private void pictureBox_MouseUp(object sender, MouseEventArgs e){// 修正Width和Height可能为负数的问题if (_selectArea.Width < 0){_selectArea.Width = -_selectArea.Width;_selectArea.X -= _selectArea.Width;}if (_selectArea.Height < 0){_selectArea.Height = -_selectArea.Height;_selectArea.Y -= _selectArea.Height;}Cursor.Clip = Rectangle.Empty;_mouseIsDown = false;DrawRectangle();_selectArea = Rectangle.Empty;}private void pictureBox_MouseMove(object sender, MouseEventArgs e){if (_mouseIsDown)ResizeToRectangle(e.Location);}/// <summary> /// 初始化选择框 /// </summary> /// <param name="startPoint"></param> private void DrawStart(Point startPoint){//指定工作区为整个控件 Cursor.Clip = RectangleToScreen(new Rectangle(pictureBox.Location.X, pictureBox.Location.Y,pictureBox.Width, pictureBox.Height));_selectArea = new Rectangle(startPoint.X + pictureBox.Location.X,startPoint.Y + pictureBox.Location.Y,1,1);}/// <summary> /// 在鼠标移动的时改变选择框的大小 /// </summary> /// <param name="p">鼠标的位置</param> private void ResizeToRectangle(Point p){_selectArea.Width = p.X + pictureBox.Location.X - _selectArea.Left;_selectArea.Height = p.Y + pictureBox.Location.Y - _selectArea.Top;DrawRectangle();}/// <summary> /// 绘制选择框 /// </summary> private void DrawRectangle(){pictureBox.Refresh();var rect = RectangleToScreen(_selectArea);ControlPaint.DrawReversibleFrame(rect, Color.White, FrameStyle.Thick);}
图片文字识别
IronOCR的使用很简单,官网给出的教程:
using IronOcr;//..var Ocr = new AutoOcr();var Result = Ocr.Read(@"C:\path\to\image.png");Console.WriteLine(Result.Text);
所以接下来只需要将框选区域进行截图
,然后交给OCR识别即可
private readonly AutoOcr _ocr;public MainForm(){InitializeComponent();_ocr = new AutoOcr();// 强制初始化OCRvar img = new Bitmap(1,1);_ocr.Read(img);}// 框选的代码......./// <summary>/// 识别框选的单词/句子/// </summary>/// <returns>识别的结果</returns>private string SelectText(){var rect = RectangleToScreen(_selectArea);var img = new Bitmap(rect.Width, rect.Height);var graphics = Graphics.FromImage(img);graphics.CompositingQuality = CompositingQuality.HighQuality;graphics.CopyFromScreen(rect.Left, rect.Top, 0, 0,new Size(rect.Width, rect.Height));var result = _ocr.Read(img);Debug.WriteLine(result.Text);return result.Text;}
最后在MouseUp
事件的时候调用SelectText
即可,然后拿着识别出来的文字去干啥都行
项目源码:OCRDemo
使用IronOCR识别图片文字相关推荐
- python 图片识别_python识别图片文字
滑稽研究所 python识别图片文字 哈喽,大家好呀,我是滑稽君.大家在写论文时可能经常碰到无法复制文字的文章.明明找到了需要的内容却无法直接复制使用,这让我们十分苦恼.那么本期滑稽君就告诉大家如何使 ...
- 这两款好用的识别图片文字的软件app值得你们收藏
日常生活中,大家都会保留很多照片.比如老师上课的PPT.上班办公的文档.随手截取的网页图片等等.这些有时候是因为我们来不及记录,而拍照作备用的,后期还需要我们去手写抄录.其实这效率未免太慢了,如果可以 ...
- python学习使用easyocr识别图片文字
测试了C#中调用PaddleOCRSharp和PaddleSharp进行图片文字识别,由于正在学习python,也就同时学习使用python进行图片文字识别的方法. 百度关键词"py ...
- C#测试调用PaddleSharp模块识别图片文字
PaddleSharp是PaddleInference C API的C#封装版本,支持在 Windows(x64).NVIDIA GPU和Linux(Ubuntu-20.04 x64)中使用.Pa ...
- 在线识别图片文字,分享识别技巧
在这个信息科技发展的时代,必须要有过硬的知识才能跟的上时代的步伐.就像是同一个职位,我们必须要有自己独特的工作技巧或者是技能,才能更好的胜任.像是办公室文员,每天要接触的是很多文件,还有将文件转换成文 ...
- 批量识别图片文字并存为Excel,几行Python轻松实现!
今天给大家分享批量识别图片的方法. 一.背景 也许你还记得,前不久复旦大学一博士生写了130行Python代码,批量识别核酸截图内容的故事.当时还被人民日报公众号报道出来,夸赞用所学贡献青春力量! 其 ...
- 微信怎么识别图片文字
微信怎么识别图片文字?微信拍照就能识别图片上的文字,抛弃那些APP解放手机的好方法你知道吗?相信很多人还不知道,那小编今天就将方法分享给大家吧. 迅捷文字识别属性:微信小程序 优点:相机模式:对着文字 ...
- 如何免费识别图片文字?这几个软件彻底解放你的双手
有朋友在寻找可以识别图片中文字的软件吗?日常生活中我们常有将图片中的文字提取出来的需要,如果一个个手打会十分浪费时间,还很容易出错,效率很低,远没有靠软件实现来得方便和高效.那么,可以识别图片文字的软 ...
- C#-调用OCR组件识别图片文字
C#调用OCR组件识别图片文字 图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号. 图片识别的用途:很多人用它去破解网站的验 ...
最新文章
- java web的ssh框架_JavaWeb_(SSH论坛)_二、框架整合
- Android仿QQ侧滑菜单
- 请解释和、|和||的区别?
- PCL:全程详解 VS2010+PCL配置
- 【渝粤题库】陕西师范大学200851 微机实用技术
- C# 8.0 的新特性概览和讲解
- 触发器使用教程和命名规范
- React vs Angular,哪种学习成本更低?
- RHEL 6.3的yum不小心被删除了。如何恢复?
- Beetlsql自学笔记
- 2019重庆大学计算机学院研究生,【计算机】计算机学院举行2019级研究生年级大会...
- 通过wireshark抓包对nmap一些原理分析
- 使用单线程还是多线程的问题
- 输入n个整数,输出其中的最大值
- 金融业预警| 黑客如何大摇大摆把钱从银行划出去?
- 华为自带邮箱下载_华为用户进来看!微信气泡主题的设置方法,仅华为用户拥有!...
- 一日一技python安装_一日一技:快速实现Python 命令行参数
- ​ios11自带邮件添加新的邮箱账号
- MySQL GIS功能介绍
- XSS学习笔记(未完)