千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了如何使用OpenCV+Python去除手机拍摄文本底色,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。最近经常被要求手机拍摄考试卷,但是拍摄
千家信息网最后更新 2026年11月01日如何使用OpenCV+Python去除手机拍摄文本底色

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

最近经常被要求手机拍摄考试卷,但是拍摄完之后,跟实际的黑白考试卷有很大的色差,打印出来之后背景就变成了灰色,看着很不舒服。于是我想起了好久以前,我用过的一个软件叫全能扫描王,发现它里面是有去除这种文本底色的功能的,但是有时候也很坑!我就想手动写一个简单python程序来实现。最终我写出的程序测试效果如下:

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


思路分析

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

我发现这些图像基本上都是黑白纸张或者有些有虚线的纸张,我首先想到把文字部分从输入图像中都抠出来来,不需要太精准,大致就可以了,所以要获取图像中文字的mask,我就想到了用二值化的方法,我首先尝试了全局二值化OTSU与三角法来获取mask,发现效果都有点坑爹!图示如下:

最终效果是这样,而当光线稍微有点不均匀的时候,这个就直接在二值话时候翻车了!会丢失信息,所以我想到了用自适应的二值化方法,最终选择:
binary = cv.adaptiveThreshold(image, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY_INV, 25, 15)
该函数来完成二值化,实现mask提取

提取完成之后,通过了一个形态学操作来实现简单的膨胀操作,这样确保每个字像素范围足够大,不会丢失。最终自适应的mask:

然后与原图实现与操作,得到真实文字区域,使用mask区域取反得到mask1,然后对mask与输入的灰度图像完成bitwise_and操作,得到的结果与mask1相加即可得到最终的效果,图示如下:

不会像二值话之后的那样让人眼睛看到不舒服的黑色,想要获取该例子完整源代码,请关注 公众号,然后回复 " 文本去背景 "



下载1:leetcode 开源书



在「AI算法与图像处理」公众号后台回复:leetcode,即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!



上述内容就是如何使用OpenCV+Python去除手机拍摄文本底色,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

图像 拍摄 手机 文本 效果 底色 原图 文字 处理 输入 舒服 公众 内容 区域 技能 方法 时候 知识 程序 纸张 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网巨头科技公司 互联网科技公司发展 华中科技大学互联网 伴你行互联网科技有限公司 互联网科技网站 佰商互联网科技有限公司 互联网科技股有哪些 互联网公司会议桌创意科技软装饰 青海省互联网新科技 卫星互联网科技股票 深圳市运趣互联网科技有限公司 福州新华互联网科技学校 知乎 昊天互联网科技有限公司 电子科技大学互联网创业大赛 互联网科技研发水平 互联网科技和法律行业 互联网金融科技公司的优势 上海同邻互联网科技有限公司规模 互联网时代科技型公司的机会 网互联网络科技 伟宏互联网科技 互联网科技官网 互联网与未来科技 广州互联网络科技有限公司 呼和浩特新华互联网科技学院 佛山市翊博互联网络科技有限公司 山东星卡互联网科技有限公司官网 互联网科技对化妆品行业 重庆科技产业互联网有哪些 颐高云石互联网科技
0