一、对于复杂背景中的文本提取

我测试用的简单的单行文本,如果非文本区多对二值化影响大,首先进行提取文本行,再对提取的文本行进行二值化。

实例图片:

图片中的文字区域从此视频帧中提取:

1、切取图片中的行

提取边缘信息,边缘图像进行水平投影,将每一行中的像素值相加,得到一个每行边缘信息的数组,

求数组的波谷,两个波谷直接的区间就为文本行。

求取波谷,我也没想到什么好的算法,因为数组是有波动的,只提取极小值也不对,会提取到特别多个波谷。

下一步想平滑后求极小值。

目前切行后为:

2、对文本行归一化到一定的高

按原来的宽高比对图片进行缩放,缩放到高为80个像素点(看论文里的经验值),便于文本的识别。

        float ratioWH = (float)(image->width)/image->height;CvSize cv;cv.height = 80;//将文字行比例转换为高80cv.width = 80*ratioWH;IplImage *norImage = cvCreateImage(cv,8,1);cvResize(image,norImage);

3、对归一化的文本行进行二值化

提取归一化文本行的边缘信息,因为文本现在占图像的主体,边缘点的特征跟文本的特征比较相似(对于渐变文本,边缘和

填充不一致的也没有考虑,只考虑简单的文本颜色比较单调的),根据边缘点的位置在归一化图上提取相应点的颜色特征,

在这里我又加了连通域分析,不过感觉没有什么改变。

        IplImage *cannyImage = cvCreateImage(cvGetSize(norImage),8,1);cvCanny(norImage,cannyImage,50,150);CvMemStorage *pStor = cvCreateMemStorage(0);///创建目标轮廓存储空间;CvSeq        *pCont = NULL;///无需释放内存cvFindContours(cannyImage, pStor, &pCont,sizeof(CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);//获取二值图像轮廓信息cvDrawContours(cannyImage,pCont,cvScalarAll(255),cvScalarAll(255),0,CV_FILLED,8, cvPoint(0, 0));int sum = 0;int num = 0;for(int i=0;i<norImage->height;i++){for(int j=0;j<norImage->width;j++){uchar data = *(cannyImage->imageData+i*cannyImage->widthStep+j);if(data!=0){uchar data2 = *(norImage->imageData+i*norImage->widthStep+j);sum += data2;num++;}}}//二值化float average =(float)(sum)/num;for(int i=0;i<norImage->height;i++){for(int j=0;j<norImage->width;j++){if((uchar)*(norImage->imageData+i*norImage->widthStep+j)>average){*(norImage->imageData+i*norImage->widthStep+j) = 255;}else{*(norImage->imageData+i*norImage->widthStep+j) = 0;}}}

二值化后图片:

背景还是有没有去掉的,根据上视频帧是曝光的原因,考虑均衡一下。

4、然后用二值化的图片再用tesseract识别。

http://blog.csdn.net/kuaile123/article/details/9302949

tesseract识别图片中文字(一)相关推荐

  1. python 识别图片中的中文_python识别图片中文字的方法

    Tesseract 文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别.Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别.但是在此之 ...

  2. 单张、批量识别图片中文字(写入txt文件、窗口视图创建、打包.exe文件)(百度文字识别SDK+Python的GUI之tklinker+打包pyinstaller)

    昨天我姐问我有没有软件可以批量识别图片上的文字,她在帮客户做资料整理,但是用的方法只能一张一张上传识别,不仅效率低还浪费时间. ​我就找了找批量识别的软件,下载下来觉得:嗯?不错,界面也挺好,小东西做 ...

  3. 图像文字识别(二):java调用tesseract 识别图片文字

      在JAVA中调用tesseract识别图片的文字内容,主要有两种方式:cmd方式,tess4j方式.在这篇博客中,主要记录一下通过cmd命令行的方式.cmd方式,就是通过在java中调用命令行,来 ...

  4. python批量识别图片中文字_Python识别图片中的文字

    一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的 ...

  5. python批量识别图片中文字_如何用Python识别图片中的文字?

    一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的 ...

  6. python批量识别图片中文字_python实现中文图片文字识别--OCR about chinese text--tesseract...

    0.我的环境: win7 32bits python 3.5 pycharm 5.0 1.相关库 安装pillow: pip install pillow 安装tesseract: 自带了英文语言包, ...

  7. 深入学习使用ocr算法识别图片中文字的方法

    公司有个需求,简单点说需要从一张图片中识别出中文,通过python来实现,当然其他程序也行,只要能实现,而小编主要学习python,所以就提了python.一个小白在网上遨游了一天,终于找到一丝丝思绪 ...

  8. python使用aip库识别图片中文字

    一.获取百度智能云API的AppID / API Key / Secret Key 1.创建应用 百度智能云登录地址:https://login.bce.baidu.com/ 2.立即创建 3.得到A ...

  9. 识别图片中文字的三种方法/图片转文字

    一.钉钉 钉钉内置了很多小功能.打开手机钉钉,点击左下角的消息按钮,然后点击右上角的+号-扫一扫,点击拍图识字选中需要识别的文字即可. 二.QQ 打开手机QQ,点击右上角的+号-扫一扫之后,点击转文字 ...

最新文章

  1. 图像处理分类、一般流程与算法
  2. 19课 Vue第二节
  3. 一起谈.NET技术,数据库访问的性能问题与瓶颈问题
  4. Spring Boot + Thymeleaf 创建web项目
  5. stm32f4 输出pwm波_stm32的pwm输出代码及注释
  6. robcad和catia是什么关系_proe/CATIA/UG/SolidWorks软件区别与联系
  7. mac vim python3_VIM学习笔记 编译源码(Compile Code)-Python
  8. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...
  9. 企业级SpringBoot教程(十一)springboot集成swagger2,构建Restful API
  10. C++模板元 -- 变长参数模板
  11. java subset_Java中的TreeSet的subSet()方法 Java.util.TreeSet.subSet() - Break易站
  12. svn 回退/更新/取消至某个版本命令详解
  13. SNMPWALK命令解析
  14. 计算机能换显卡吗,一体机电脑可以更换CPU和显卡嘛?
  15. weex_iOS集成
  16. javax.mail.MessagingException: Unknown SMTP host: smtp.163.com;
  17. docker容器中获取宿主机任意信息
  18. JAVA音程_下列选项中哪个音程是减三和弦?
  19. Linux报错: terminate called after throwing an instanc
  20. Web服务器群集——部署AWStats基于Apache的日志管理

热门文章

  1. linux修改path路径
  2. UNIX 网络协议的深度分析
  3. 微服务实战(二):使用API Gateway--转
  4. WebLogic Server的单点登陆功能--转载
  5. cp: omitting directory”错误
  6. 【勉强采用】反欺诈之血缘关系分析和犯罪传导监测
  7. The Illustrated Transformer:中英文(看原文,很多翻译是错误的)
  8. 迪拜与IBM合作推出基于区块链的商业注册系统
  9. 如何让神经网络把熊猫识别为秃鹫
  10. 基于Kaggle数据的词袋模型文本分类教程