My QR codeKann nicht QR-Code scannen zbar mit
Wenn ich meinen Code ausführen ich bin immer „[]“ als Ausgabe erhalten, was bedeutet, dass Zbar den QR nicht lesen können ... Es ist etwas falsch mit meiner Bildformat? Ich kann nicht herausfinden, warum das nicht funktioniert.
Mein Code:
import numpy as np
import cv2
import zbar
import sys
class ImageSource(object):
def __init__(self,source):
self.is_camera = type(source)==int
if self.is_camera:
self.source = cv2.VideoCapture(source)
else:
self.source = cv2.imread(source,1)
def get_size(self):
if self.is_camera:
return (int(self.source.get(3)),int(self.source.get(4)))
else:
return (self.source.shape[1],self.source.shape[0])
def get_next(self):
if self.is_camera:
return self.source.read()[1]
else:
return self.source
def release(self):
if self.is_camera:
self.source.release()
class QRScanner(object):
def __init__(self, width, height):
self.scanner = zbar.ImageScanner()
self.scanner.parse_config('enable')
self.width = width
self.height = height
def get_qrcodes(self, image):
zbar_img = self.cv2_to_zbar_image(image)
self.scanner.scan(zbar_img)
result=[]
for symbol in zbar_img:
if symbol.type!=zbar.Symbol.QRCODE: continue
fixed_data = symbol.data.decode("utf8").encode("shift_jis").decode("utf8")
result.append(QRCode(fixed_data,symbol.location))
del(zbar_img)
return result
def cv2_to_zbar_image(self, cv2_image):
return zbar.Image(self.width, self.height, 'Y800',cv2_image.tostring())
cap = ImageSource("1.png")
frame = cap.get_next()
scanner = QRScanner(cap.get_size()[0],cap.get_size()[1])
print scanner.get_qrcodes(frame)
Danke, aber ich arbeite mit Video-Stream , also muss ich das mit cv2 – abea
@abea beheben das ist fair, aber vielleicht versuchen Sie mit einem QR, das mit Pil (niedrig) zuerst funktioniert, so dass Sie wissen, dass Sie Ergebnisse erhalten sollten. Ich habe versucht, mit mehreren Bildern über Google QR-Bild-Probe zu googlen und die ersten 2 oder 3 hat überhaupt nicht funktioniert. – sberry