一、改变图片像素

问题1:
通常情况下,图片的像素值越大分辨率也就越高,那么图像也就越清晰。我们用现在的模型进行OCR文字识别时,识别率可能就越高。
上次开会公司那边给的图片中图片的像素值都很大,我用了一张像素值为9000x12000的图片,发现在用我们的模型进行识别时,下面比较模糊的文字(人眼都看得不是很清除的)都能正确识别。如下图

解决问题1:
通过上面的问题分析,我就去尝试将我们要识别文字的图片像素都调大(测试值9000x12000)让图片更清晰,以此来提高ocr识别率。特别针对带阴影的图片,想通过提高像素的方法来使得阴影部分的文字更清晰,更容易被识别。但通过测试,发现仍然存在部分区域没识别到。如下图

实现代码:(调整图片像素)

Bitmap.setWidth(9000)
Bitmap.setHeight(12000)

问题2:
基于上述问题的情况,尝试将图片阴影去除。

解决问题2:
使用OpenCv来去除图片阴影。
基本思路:
1、将图片转换为灰度图。
2、将灰度图进行膨胀操作。
3、膨胀后的图再进行腐蚀操作。
4、先膨胀后腐蚀的图减去原灰度图再取反。
5、将取反后的图使用归一化将白色背景修改贴近原图。
效果如下:(右图为原图;左图为去阴影后的图)

注意:代码是用C++实现的,具体实现也是直接用的别人写好的代码(我不会C++)。在它的代码里针对它的那张阴影图片效果很好,如下图。

可能原因是他在做处理的时候是点对点操作,也就是针对他这张图片设置代码参数等。所以在处理我的那张阴影图片时效果不好并且阴影部分的文字清晰度也降低了,并且在OCR模型上识别也存在部分区域检查不到。

问题3:图像增强

解决问题3:
使用openCV的图像增强。C++代码实现。去CSDN上找到了4种基于openCV用C++实现的方法。
1、基于直方图均衡化的图像增强。
(左上:去阴影后的图。右上:去阴影后的图增强后的效果)
(左下:原阴影图。右下:原阴影图增强后的效果)
2、基于拉普拉斯算子的图像增强。

3、基于对数Log变换的图像增强

4、基于伽马变换的图像增强

总结:对应上面像素增强、去阴影和去阴影后图像增强操作的图片在模型上ocr识别都会有部分区域检查不到,并且检查不到的区域基本上是同一个区域。所以最后觉得识别的效果与图像没太大关系,对于基本人眼能识别的文字ocr都能识别到,反而对于一些文字密集的地方可能ocr模型检查不到。

Android_openCV图片处理相关推荐

  1. 搭建Android+QT+OpenCV环境,实现“单色图片着色”效果

    OpenCV是我们大家非常熟悉的图像处理开源类库:在其新版本将原本在Contrib分库中的DNN模块融合到了主库中,并且更新了相应文档.这样我们就能够非常方便地利用OpenCV实现一些属于DeepLe ...

  2. Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存

    Ubuntu 16.04 下安装 Opencv sudo apt-get install libopencv-dev sudo apt-get install python-opencv 或者使用 p ...

  3. FastAI 课程学习笔记 lesson 1:宠物图片分类

    文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...

  4. 1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存

    code 将下面文档存为load_display_save.py #-*- coding:utf-8 -*- from __future__ import print_function #1 impo ...

  5. java 16进制与图片互转

    十六进制转成图片 /*** 十六进制转成图片* @author Administrator**/public static void saveToImgFile(String src,String o ...

  6. ttf,woff2字体转化为png图片,python读取图片

    20210326 乱码转换的时候 是同一套unicode编码 但是在不同的字体库中对应的字不同 20210324 https://jingyan.baidu.com/article/e73e26c0c ...

  7. LeetCode简单题之图片平滑器

    题目 包含整数的二维矩阵 M 表示一个图片的灰度.你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽 ...

  8. Typora+PicGo图床配置(本地图片-->网络url~博客必备)

    前段时间搭了一个hexo博客,但是发现了一个很大的问题,在Typora里编辑你的博文的时候,插入的图片都是一些本地图片,然后部署的时候根本不能加载这些图片~~ 其中一个解决方法就是通过一些平台,像知乎 ...

  9. OFRecord 图片文件制数据集

    OFRecord 图片文件制数据集 在 OFRecord 数据格式 和 加载与准备 OFRecord 数据集 中,分别学习了 OFRecord 数据格式,以及如何将其它数据集转为 OFRecord 数 ...

最新文章

  1. windows 2003几个优化技巧
  2. C++设计模式7--外观模式--The Client don't want to know
  3. Django使用心得(四)
  4. laya 怎么生成签名_什么是数字签名
  5. 微信内测附近的餐厅,小程序要跨界外卖了?
  6. C语言入门题-是不是太胖了 (10分)
  7. P1600 天天爱跑步
  8. 这些BATJ必考的Java面试题,你都懂了吗?
  9. 前端设置画布的高度_【后期修图】ps画布设置详解
  10. 搜狗批量提交软件-批量提交网站链接
  11. 读李智慧的《大型网站技术架构—核心原理与案例分析》有感
  12. logo设计-中文设计
  13. java top virt_Java 进程占用 VIRT 虚拟内存超高的问题研究
  14. 如何在WordPress菜单中显示图标[WordPress插件]
  15. 董嘉文抵达之谜:真正的努力从来都不动声色
  16. i.MX 6ULL 驱动开发 一:搭建开发环境
  17. Three.js Vue 如何加载字体,和遇到问题解决: 中加载字体的问题 Uncaught SyntaxError: Unexpected token = in JSON at position 0
  18. NOI 09:奇数求和
  19. 错误代码 ERR_OSSL_EVP_UNSUPPORTED
  20. 谈软件开发工具的选择

热门文章

  1. SDN:mininet交换机流表操作
  2. No signing certificate “iOS Distribution“ found No “iOS Distribution“ signing certificate matching
  3. linux网卡连接失败设备无法激活
  4. CF Card Reader Test市面CF读卡器不完全测评
  5. 信用卡怎么付款给PayPal?
  6. 逆向爬虫28 webpack扣代码
  7. protools监听_给新手写的万元录音设备选择2020系列(六)监听音箱/耳机
  8. 二级页表分页存储需要目录页表数形象解释
  9. node-opcua的使用 --- [1] 简单server
  10. 【DFS练习】水洼数