python 使用zbar,cv2和PIL / Pillow扫描图像中的条形码。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用zbar,cv2和PIL / Pillow扫描图像中的条形码。相关的知识,希望对你有一定的参考价值。

import zbar
import cv2
from PIL import Image


def scan_barcodes(img):
    """
    Scan barcodes in image and return their data.
    :param img: Source image
    :type img: PIL.Image
    :return: A list of barcode type/data tuples.
    :rtype: list
    """
    scanner = zbar.ImageScanner()
    frame = img.convert("RGB")
    gray = cv2.cvtColor(numpy.array(frame), cv2.COLOR_BGR2GRAY, dstCn=0)
    pil = Image.fromarray(gray)
    width, height = pil.size
    zimg = zbar.Image(width, height, "Y800", pil.tobytes())
    scanner.scan(zimg)
    return [(s.type, s.data) for s in zimg]

以上是关于python 使用zbar,cv2和PIL / Pillow扫描图像中的条形码。的主要内容,如果未能解决你的问题,请参考以下文章

python中PIL.Image和OpenCV图像格式相互转换

使用 PIL 在 OpenCV Python 中更改字体系列

python+opencv+pil实现windows 图片位置查找

cv2.imread()与PIL中Image.open()

matplotlibPILcv2图像操作差异分析

分别使用 PIL 和 cv2 绘制人群密度图