Python OpenCV 实现拍照图片背景去除

闻溪
闻溪
发布时间:2026-10-11| 3人浏览过
原创

本文介绍如何利用 Python 和 OpenCV 库去除拍照图片中的背景。通过自适应阈值处理、形态学操作生成掩膜,结合位运算还原清晰图像,适用于文档扫描与自动化办公场景。

背景去除的实现原理

在使用手机或相机拍摄包含文字或文档的图片时,往往会带入灰色或黑色的背景。这种背景不仅影响视觉观感,还会干扰后续的图像识别与打印效果。利用 Python 的图像处理能力,我们可以自动识别前景并去除背景,从而还原清晰的图像内容。

环境准备与代码实现

实现该功能主要依赖 cv2 和 numpy 两个库。核心思路是先通过灰度转换与自适应阈值处理提取前景文字,再通过形态学操作优化掩膜,最后利用位运算将前景与背景分离。

#!/usr/bin/python3.6
# -*- coding: utf-8 -*-
# @Time : 2020/11/17 19:06
# @Author : ptg
# @Email : zhxwhchina@163.com
# @File : 去背景.py
# @Software: PyCharm

import cv2 as cv
import numpy as np

# 读取图像并转换为灰度图
image = cv.imread("text1.png",cv.IMREAD_GRAYSCALE)

# 自适应阈值处理,提取前景文字
binary = cv.adaptiveThreshold(image,255,
        cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY_INV,25,15)

# 构建结构元素并进行形态学闭运算,连接断裂的文字部分
se = cv.getStructuringElement(cv.MORPH_RECT,(1,1))
se = cv.morphologyEx(se, cv.MORPH_CLOSE, (2,2))

# 膨胀操作生成背景掩膜
mask = cv.dilate(binary,se)
cv.imshow("image",image)

# 反转掩膜,获取文字区域的掩膜
mask1 = cv.bitwise_not(mask)

# 将原图与文字掩膜进行位与运算,保留文字部分
binary =cv.bitwise_and(image,mask)

# 将文字部分与反转的背景掩膜相加,得到最终结果
result = cv.add(binary,mask1)
cv.imshow("reslut",result)

# 保存处理后的图像
cv.imwrite("reslut00.jpg",result)

# 等待按键关闭窗口
cv.waitKey(0)
cv.destroyAllWindows()

处理流程解析

  1. 灰度转换:使用 cv.IMREAD_GRAYSCALE 读取图像,简化后续处理。
  2. 自适应阈值:利用 cv.adaptiveThreshold 将图像二值化,cv.THRESH_BINARY_INV 确保文字部分为白色(255),背景为黑色(0)。
  3. 形态学处理:通过 cv.morphologyEx 进行闭运算,修复文字内部的空洞;再通过 cv.dilate 膨胀操作生成背景掩膜。
  4. 位运算合成:利用 cv.bitwise_not 反转掩膜,结合 cv.bitwise_and 和 cv.add 将前景文字与白色背景合并,实现背景去除。

应用场景

该技术不仅用于图像美化,还可结合 Python 的文字识别功能,将处理后的清晰图像转换为 PDF 等文档,广泛应用于自动化办公与文档数字化场景。

以上就是 Python + opencv 对拍照得到的图片进行背景去除的实现方法的详细内容,更多关于 Python 图像处理与自动化办公的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。