【python】OpenCV—European Article Number
创始人
2024-12-29 09:09:34
0

在这里插入图片描述

参考学习来自:OpenCV基础(25)条码和二维码扫的生成与识别

1 条形码介绍

EAN-13是欧洲物品编码(European Article Number)的缩写,是一种广泛使用的条形码标准,特别是在超级市场和其它零售业中。以下是对EAN-13条形码的详细介绍:

一、基本信息

  • 名称:EAN-13

  • 全称:European Article Number

  • 定义:一种用于表示终端产品信息的条形码协议和标准,由13位数字组成。

二、编码规则

  • 国家代码:前3位数字表示国家代码,由国际商品条码总会授权。在 CN,可用的国家代码为690-699,其中696-699尚未使用。

  • 厂商代码:接下来的4位数字表示厂商代码,由国家商品条码策进会核发给申请厂商。

  • 产品代码:再接下来的5位数字表示产品代码,由厂商自由编定。

  • 校验符:最后1位数字是校验符,用于检验前面12个数字的正确性。

三、校验符的计算方法

  • 将12个数据符从左起将所有的奇数位相加得出一个数a。

  • 将所有的偶数位相加得出一个数b。

  • 将数b乘以3再与a相加得到数c。

  • 用10减去数c的个位数,如果结果不为10则检验符为结果本身,如果为10则检验符为0。

2 条形码生成

from pystrich.ean13 import EAN13Encoder  # pip install pystrich encode = EAN13Encoder('123456789123') encode.save('pystrich.png') 

在这里插入图片描述

# pip install python-barcode from barcode.writer import ImageWriter from barcode.ean import EuropeanArticleNumber13  ean = EuropeanArticleNumber13("123456789123", writer=ImageWriter()) ean.save("barcode") 

会默认保存为 barcode.png
在这里插入图片描述

3 条形码检测

from __future__ import print_function import pyzbar.pyzbar as pyzbar import numpy as np import cv2   def decode(im):     # 查找条形码和二维码     decodedObjects = pyzbar.decode(im)      # 打印结果     for obj in decodedObjects:         print('Type : ', obj.type)         print('Data : ', obj.data, '\n')      return decodedObjects   # 显示条码和二维码位置 def display(im, decodedObjects):     # 遍历所有解码对象     for decodedObject in decodedObjects:         points = decodedObject.polygon          # 如果点不形成四边形,请找到凸包         if len(points) > 4:             hull = cv2.convexHull(np.array([point for point in points], dtype=np.float32))             hull = list(map(tuple, np.squeeze(hull)))         else:             hull = points          # 凸包中的点数         n = len(hull)         hull = [(int(x), int(y)) for x, y in hull]         # 绘制凸包         for j in range(0, n):             cv2.line(im, hull[j], hull[(j + 1) % n], (255, 0, 0), 3)      # 显示结果     cv2.imwrite("Result.jpg", im)     cv2.imshow("Results", im)     cv2.waitKey(0)   # 主函数 if __name__ == '__main__':     # 读取图片     im = cv2.imread('barcode.png')     # im = cv2.imread('pystrich.png')      decodedObjects = decode(im)     display(im, decodedObjects) 

output

Type :  EAN13 Data :  b'1234567891231'  

在这里插入图片描述

output

Type :  EAN13 Data :  b'1234567891231'  

在这里插入图片描述

相关内容

热门资讯

普及一下!拱趴大菠萝玩的是运气... 普及一下!拱趴大菠萝玩的是运气吗,越悦游戏字牌攻略,果然是真的有挂(哔哩哔哩)1、让任何用户在无需拱...
辅助一下!新道游科技透视免费版... 辅助一下!新道游科技透视免费版,蜀山四川小程序辅助,竟然有挂(哔哩哔哩)新道游科技透视免费版能透视中...
有挂一下!广西微乐小程序辅助器... 有挂一下!广西微乐小程序辅助器,牛总管辅助免费版,总是真的是有挂(哔哩哔哩)1、下载好广西微乐小程序...
揭露一下!微乐家乡app下载,... 揭露一下!微乐家乡app下载,光明大厅微信链接辅助试用,其实存在有挂(哔哩哔哩)1、光明大厅微信链接...
解密一下!辅助定制交易平台,超... 解密一下!辅助定制交易平台,超圣大厅黑科技,一贯是真的有挂(哔哩哔哩)1、该软件可以轻松地帮助玩家将...
详情一下!杭州都莱辅助软件下载... 详情一下!杭州都莱辅助软件下载,爱玩联盟辅助下载,都是真的有挂(哔哩哔哩);1、每一步都需要思考,不...
辅助一下!川娱竞技有挂透视脚本... 辅助一下!川娱竞技有挂透视脚本,新畅游互娱科技,果然真的有挂(哔哩哔哩)1、游戏颠覆性的策略玩法,独...
开挂一下!h5反杀工具,多乐手... 开挂一下!h5反杀工具,多乐手游辅助,确实是有挂(哔哩哔哩)1、多乐手游辅助有没有辅助教程、多乐手游...
揭幕一下!518互游辅助,西兵... 揭幕一下!518互游辅助,西兵互娱辅助,确实真的是有挂(哔哩哔哩)1、玩家可以在西兵互娱辅助透视最简...
辅助一下!河南微乐小程序辅助器... 辅助一下!河南微乐小程序辅助器免费,边锋老友乳山辅助,竟然真的是有挂(哔哩哔哩)1、这是跨平台的河南...