Wie zu erkennen, eine einzelne QR-code mittels OpenCV, Python und zbar

Bin ich mit der unteren Kamera für AR Drone zu erkennen, einen QR-code, um für mich zu wissen, den Aufenthaltsort der Drohne auf einem Schachbrett. Die Drohne schwebt über dem Schachbrett, wobei jedes einzelne Quadrat ist ein QR-code halten der position(z.B. A1, C5, E7, etc.). Wenn ich drücken Sie eine bestimmte Taste, es scannt den QR-code und gibt mir die position.

Gerade jetzt, ich möchte in der Lage sein zu erkennen, dass eine einzelne QR-code aus vielen. Da es möglich ist, dass die Drohne hat mehrere QR-codes in Sicht. Weil ich muss wissen, welchen genauen Platz der Drohne ist, oder zumindest in der Nähe(zum Beispiel: 2/3 über A1 und 1/3 oberhalb von A2 soll das Ergebnis in A1). Hier ist der code, den ich verwende derzeit:

#!/usr/bin/python
from sys import argv
import zbar
import Image
import cv2

class DetectQRCode(object):

    @classmethod
    def detect_qr(self, image):
        # create a reader
        scanner = zbar.ImageScanner()

        # configure the reader
        scanner.parse_config('enable')

        # obtain image data
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY,dstCn=0)
        pil = Image.fromarray(gray)
        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
            if symbol.data == "None":
                return "Drone bevindt zich buiten het raster"
            else:
                return symbol.data

Kann das getan werden, mithilfe von OpenCV, Python? Tut zbar haben etwas, das ich verwenden könnte?

InformationsquelleAutor Redesign1991 | 2015-01-29
Schreibe einen Kommentar