大家好,欢迎来到IT知识分享网。
python+opencv-二维码和datamartix码读取
1、二维码读取
1.1实现方法:
from pyzbar.pyzbar import decode
1.2实现步骤:
1.3实现代码:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import numpy as np from pyzbar.pyzbar import decode from PIL import Image, ImageDraw import time src = cv2.imread("5.bmp") print(src.shape) # 灰度转换 gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) text2 = cv2.medianBlur(gray,3) ret,text2 = cv2.threshold(text2, 180, 255, cv2.THRESH_BINARY) for code in decode(text2): data = code.data.decode('utf-8') print("条形码/二维码数据:", data) #解码数据 rect = code.rect print(rect) cv2.putText(src, data, (300,500 ), cv2.FONT_HERSHEY_SIMPLEX, 5, (0, 0,255), 6) cv2.rectangle(src, (rect.left, rect.top), (rect.left + rect.width, rect.top + rect.height), (0,0,255), 2) polygon = code.polygon print(polygon) box = np.intp(polygon) print(type(box)) cv2.drawContours(src, [box], -1, (255,0, 0), 3) result = cv2.resize(src,dsize=None,fx=0.2,fy=0.2,interpolation=cv2.INTER_LINEAR) cv2.imshow("result", result) cv2.waitKey(0) cv2.destroyAllWindows()
2、datamartix码识别
2.1实现方法:
from pylibdmtx import pylibdmtx
2.2实现步骤:
2.3实现代码:
实现代码采用的是电脑生成的datamartix码比较清楚,所以未进行相关的滤波和二值化的预处理。
#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 from pylibdmtx import pylibdmtx import time # 加载图片 image = cv2.imread('DataMatrixcode.png') # 解析二维码 all_barcode_info = pylibdmtx.decode(image, timeout=500, max_count=1) print(all_barcode_info) print(all_barcode_info[0].data.decode("utf-8")) text=all_barcode_info[0].data.decode("utf-8") cv2.putText(image, text, (5,20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) image = cv2.resize(image,dsize=None,fx=4,fy=4,interpolation=cv2.INTER_LINEAR) cv2.imshow('image', image) cv2.waitKey(0) cv2.destroyAllWindows()
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120754.html