Python检测图片二维码:pyzbar库实战与代码示例

Ryan
Ryan
发布时间:2026-10-14| 6人浏览过
原创

本文介绍如何使用Python检测图片中是否包含二维码。通过对比已停止维护的zbar库,推荐使用pyzbar库结合Pillow进行图像解码。文章提供了详细的安装步骤、测试图片准备方法以及完整的Python代码示例,包括如何遍历文件夹、调用pyzbar.decode()解码并输出结果,同时提及了通过调整亮度提高识别率的备选方案。

前言

前言

由于在不同平台发布文章时,部分平台不会检测文章内图片是否包含二维码,而另一些平台则会进行检测,因此笔者研究了如何利用Python进行二维码检测。经过搜索,发现主要有两个可用的库:

  • 一个是zbar,该库功能强大,但仅支持Python 2.7,且已停止维护。考虑到Python 2.7已于2020年1月停止支持,目前仍使用该版本的开发者应及时升级。
  • 另一个是pyzbar,它基本继承了zbar的功能。

安装与测试准备

安装

安装依赖库


pip install pyzbar -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install Pillow

测试环境准备

测试

准备图片

首先,从二维码生成网站准备一批二维码图片作为测试素材,同时也包含一些不含二维码的图片。

Python实现代码

代码

使用方法如图所示,图片通过Pillow库打开,再利用pyzbar的decode方法进行解码,具体代码如下:

核心代码解析


import pyzbar.pyzbar as pyzbar
from PIL import Image,ImageEnhance
import os
img_dir = "..\\img"
def open_img():

  img_list = []
  for _,_,file_list in os.walk(img_dir):
    img_list = [os.path.join(img_dir,file) for file in file_list if file.endswith(".jpg") or file.endswith(".png") ]
  print("所有文件:{}".format(img_list))

  return img_list



def show():
  img_list = open_img()
  for _img in img_list:
    img = Image.open(_img)
    # img = ImageEnhance.Brightness(img).enhance(2.0)#增加亮度

    # img = ImageEnhance.Sharpness(img).enhance(17.0)#锐利化

    # img = ImageEnhance.Contrast(img).enhance(4.0)#增加对比度

    # img = img.convert('L')#灰度化
    texts = pyzbar.decode(img)
    if not texts:
      print("{}文件不存在二维码".format(_img))
    for text in texts:
      t = text.data.decode("utf-8")
      if t:
        print("{}文件存在二维码,内容为:{}".format(_img,t))



if __name__ == '__main__':
  show()

注释掉的代码可在图片识别率较低时启用,用于提升图片亮度。

运行结果与总结

运行结果

所有测试图片均被正确识别,效果良好。

以上就是如何利用Python检测图片是否包含二维码的详细内容,更多关于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 算法库。