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

本文向您展示了如何使用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去除手机拍摄的文字背景色 。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备 , 请关注行业信息渠道 。

    推荐阅读