如何使用OpenCV+Python去除手机拍摄文本底色

技术如何使用OpenCV+Python去除手机拍摄文本底色本篇文章为大家展示了如何使用OpenCV+Python去除手机拍摄文本底色,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

本文向您展示了如何使用OpenCV Python移除手机拍摄的文本的背景颜色。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

最近经常被要求用手机拍考卷,但是拍完之后和实际的黑白考卷有很大的色差。打印后背景变成灰色,让我感觉不舒服。于是我想起了很久以前,我用一个叫全能扫描王的软件的时候,发现它有去除这个文字背景色的功能,但是有时候很无聊!我只想手工写一个简单的python程序。我最后写的程序测试结果如下:

如何使用OpenCV+Python去除手机拍摄文本底色

左侧是用手机拍摄的图像,右侧是用opencv-python处理之后的结果。

思维分析

首先看一下输入的原图(小学生的作业找不到,让我给他打印一下。他想手写,我说我来处理,打印出来)。别人拍的原图:

如何使用OpenCV+Python去除手机拍摄文本底色

我发现这些图像基本上都是黑白纸或者一些带虚线的纸。我首先想到的是从输入的图像中挑出文字部分,不需要太精确,大致可以做到。因此,为了获得图像中字符的掩码,我想到了使用二值化方法。我先尝试了全局二值化OTSU和三角剖分来获取蒙版,发现效果有点骗人!下图:如何使用OpenCV+Python去除手机拍摄文本底色

最后的结果是这样的,当光线稍微不均匀的时候,这个在二进制的情况下会直接翻车!会丢失信息,所以我想到了用自适应二值化的方法,最后选择了binary=cv。自适应阈值(图像,255,cv。自适应_ thresh _高斯_ c,cv。thresh _ binary _ inv,25,15)。

该功能完成二值化,实现掩膜提取。

提取完成后,通过形态学运算实现简单的扩展操作,保证每个字的像素范围足够大,不会丢失。最终的自适应遮罩:如何使用OpenCV+Python去除手机拍摄文本底色

然后对原始图像进行AND运算得到真实的文字区域,用蒙版区域进行反相得到mask1,然后对蒙版和输入的灰度图像完成bitwise_and运算,将结果与mask1相加得到最终效果,如下图:如何使用OpenCV+Python去除手机拍摄文本底色

不会像二进制词后那样让人看到不舒服的黑色。要获得这个例子的完整源代码,请关注公众号,然后回复"文本去背景"。

下载1:leetcode开源的书

在“AI算法与图像处Li”微信官方账号后台回复:可以下载。Runtime beats是一本针对每个问题的100%开源好书,你值得拥有!

如何使用OpenCV+Python去除手机拍摄文本底色

以上内容是如何使用OpenCV Python去除手机拍摄的文字背景色。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65915.html

(0)

相关推荐

  • ibatis怎么多条件查询(ibatis优点)

    技术iBATIS发展方向的四个方面分别是什么这期内容当中小编将会给大家带来有关iBATIS发展方向的四个方面分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。iBATIS发展方向

    攻略 2021年12月19日
  • 青菜炒鸡蛋的做法,菠菜炒鸡蛋的制作方法是什么

    技术青菜炒鸡蛋的做法,菠菜炒鸡蛋的制作方法是什么菠菜炒鸡蛋是一道地道的家常菜。但是要想做得好吃青菜炒鸡蛋的做法,也不是像辣椒炒鸡蛋那样简单混合一炒就好的。菠菜炒鸡蛋的家常做法:1、菠菜摘去黄叶洗净。
    2、坐锅烧水,水开放

    生活 2021年10月27日
  • pytorch 训练集尺寸必须一致吗(pytorch如何防止加载模型改变参数)

    技术torch.nn.ModuleList有什么用本篇内容主要讲解“torch.nn.ModuleList有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“torch.n

    攻略 2021年12月21日
  • 如何随机获取oracle数据库中的任意一行数据

    技术如何随机获取oracle数据库中的任意一行数据小编给大家分享一下如何随机获取oracle数据库中的任意一行数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!对于rownum来说它是oracle系统顺

    攻略 2021年11月12日
  • MySQL该怎么学习

    技术MySQL该怎么学习MySQL该怎么学习,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQL是一种结构化查询语言,是通用地使用关系型数据

    攻略 2021年11月4日
  • React5种非常流行的状态管理库是什么

    技术React5种非常流行的状态管理库是什么本篇内容主要讲解“React 5种非常流行的状态管理库是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React 5种非常流行

    攻略 2021年10月26日