Ich verwende opencv Version 3.1.0 mit zbar (neueste Version als von diesem Post) und PIL (neueste Version als von diesem Post)mit opencv mit zbar in Python auf Windows 8.1 QR-Codes erkennen
import zbar
import Image
import cv2
# create a reader
scanner = zbar.ImageScanner()
# configure the reader
scanner.parse_config('enable')
#create video capture feed
cap = cv2.VideoCapture(0)
while(True):
ret, cv = cap.read()
cv = cv2.cvtColor(cv, cv2.COLOR_BGR2RGB)
pil = Image.fromarray(cv)
width, height = pil.size
raw = pil.tostring()
# wrap image data
image = zbar.Image(width, height, 'Y800', raw)
# scan the image for barcodes
scanner.scan(image)
# extract results
for symbol in image:
# do something useful with results
print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data
# clean up
print "/n ...Done"
Ich verstehe nicht, warum das nicht funktioniert, es sollte ständig nach qrcodes im aktuellen Frame des Video - Streams suchen und wenn es eins sieht entschlüsselt es es und druckt was es darin sagt Ich halte ausgedruckte qrcodes vor meine webcam und es funktioniert nicht es zeigt, dass meine kamera eingeschaltet ist und dass es einen video stream gibt so irgendwo in der while loop etwas schief läuft
I versuchte es vorher mit QR-Codes auf meinem Computer nicht ausgedruckt und es hat gut funktioniert
Ich habe auch versucht, zeigen Sie mir den aktuellen Rahmen mit cv2.imshow("out",cv)
aber wenn ich das Programm zeigte nur ein großes graues Quadrat, wo es das Video zeigen sollte Strom und dann erstarrte es, also musste ich Netbeans töten.
Ich legte RGB2GRAY statt nach BGR2RGB und es funktionierte großartig, entschlüsselte ein Bild, das ich von dem Bildschirm auf meinem Handy gehalten – vaughnmcbob1