Pyzbar无法解码同打印机打印的单张QR Code,求技术解决方案
求助:单张QR Code标签无法解码,已尝试多种预处理方案无果
用同一台标签打印机打印了一批QR Code标签,其余均能正常识别,唯独这一张无法解码。已尝试Stack Overflow上《Preprocessing images for QR detection in python》中的所有解决方案,仍未解决,附上相关代码及QR Code图片,恳请帮助。
import cv2 import numpy as np from pyzbar.pyzbar import decode from pyzbar.pyzbar import ZBarSymbol from kraken import binarization from PIL import Image from qreader import QReader image_path = r"C:\Users\ASinger\Pictures\hdi_pdfs\page1.png" # 方法1 im = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) ret, bw_im = cv2.threshold(im, 127, 255, cv2.THRESH_BINARY) barcodes = decode(bw_im, symbols=[ZBarSymbol.QRCODE]) print(f'barcodes: {barcodes}') # 方法2 im = Image.open(image_path) bw_im = binarization.nlbin(im) decoded = decode(bw_im, symbols=[ZBarSymbol.QRCODE]) print(f'decoded: {decoded}') # 方法3 im = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) blur = cv2.GaussianBlur(im, (5, 5), 0) ret, bw_im = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) decoded = decode(bw_im, symbols=[ZBarSymbol.QRCODE]) print(f'decoded: {decoded}') # 方法4 qreader = QReader() image = cv2.imread(image_path) decoded_text = qreader.detect_and_decode(image=image) print(f'decoded_text: {decoded_text}') # 方法5 cropped_image = image_path im2 = Image.open(cropped_image) im2 = im2.resize((2800, 2800)) im2.save(cropped_image, quality=500) im2.show() im3 = cv2.imread(cropped_image, cv2.IMREAD_GRAYSCALE) ret, bw_im = cv2.threshold(im3, 127, 255, cv2.THRESH_BINARY) decoded = decode(bw_im, symbols=[ZBarSymbol.QRCODE]) print(f'decoded: {decoded}')
内容的提问来源于stack exchange,提问作者Andrew Singer
相关产品推荐
相关产品推荐

