本文向您展示了如何使用OpenCV Python移除手机拍摄的文本的背景颜色。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。
最近经常被要求用手机拍考卷,但是拍完之后和实际的黑白考卷有很大的色差。打印后背景变成灰色,让我感觉不舒服。于是我想起了很久以前,我用一个叫全能扫描王的软件的时候,发现它有去除这个文字背景色的功能,但是有时候很无聊!我只想手工写一个简单的python程序。我最后写的程序测试结果如下:
左侧是用手机拍摄的图像,右侧是用opencv-python处理之后的结果。
思维分析
首先看一下输入的原图(小学生的作业找不到,让我给他打印一下。他想手写,我说我来处理,打印出来)。别人拍的原图:
我发现这些图像基本上都是黑白纸或者一些带虚线的纸。我首先想到的是从输入的图像中挑出文字部分,不需要太精确,大致可以做到。因此,为了获得图像中字符的掩码,我想到了使用二值化方法。我先尝试了全局二值化OTSU和三角剖分来获取蒙版,发现效果有点骗人!下图:
最后的结果是这样的,当光线稍微不均匀的时候,这个在二进制的情况下会直接翻车!会丢失信息,所以我想到了用自适应二值化的方法,最后选择了binary=cv。自适应阈值(图像,255,cv。自适应_ thresh _高斯_ c,cv。thresh _ binary _ inv,25,15)。
该功能完成二值化,实现掩膜提取。
提取完成后,通过形态学运算实现简单的扩展操作,保证每个字的像素范围足够大,不会丢失。最终的自适应遮罩:
然后对原始图像进行AND运算得到真实的文字区域,用蒙版区域进行反相得到mask1,然后对蒙版和输入的灰度图像完成bitwise_and运算,将结果与mask1相加得到最终效果,如下图:。
不会像二进制词后那样让人看到不舒服的黑色。要获得这个例子的完整源代码,请关注公众号,然后回复"文本去背景"。
下载1:leetcode开源的书
在“AI算法与图像处Li”微信官方账号后台回复:可以下载。Runtime beats是一本针对每个问题的100%开源好书,你值得拥有!
以上内容是如何使用OpenCV Python去除手机拍摄的文字背景色。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65915.html