Обнаружение QR-кода из Pyzbar с изображением с камеры - PullRequest
0 голосов
/ 28 апреля 2018

У меня проблемы с обнаружением QR-кода с помощью Pyzbar. В идеальном состоянии я могу обнаружить QR-код, используя оригинальное изображение PNG. Однако, когда я делаю захват видео с камеры, а затем сохраняю этот кадр, как на изображении, pyzbar не может обнаружить QR-код.

Например, это работает

enter image description here

[Decoded(data=b'GOAL', type='QRCODE', rect=Rect(left=16, top=16, width=168, height=168))]

Но следующее не происходит даже после того, как я вручную обрезал окрестности, чтобы показать только QR-код.

enter image description here

[]

Для обоих изображений я использую

decode(image, scan_locations=True)

Мне интересно, что мне нужно сделать, чтобы pyzbar декодировал мое изображение QR-кода?

1 Ответ

0 голосов
/ 25 мая 2018

Используется OpenCV для порогового значения изображения как черно-белого, тогда pyzbar может декодировать QR-код.

Во-первых, пороговое изображение с кодом ниже.

from pyzbar import pyzbar
import argparse
import numpy as np
import cv2

image =cv2.imread("QRCode.png")

# thresholds image to white in back then invert it to black in white
#   try to just the BGR values of inRange to get the best result
mask = cv2.inRange(image,(0,0,0),(200,200,200))
thresholded = cv2.cvtColor(mask,cv2.COLOR_GRAY2BGR)
inverted = 255-thresholded # black-in-white

Ниже приведены обработанные изображения.

enter image description here

С

barcodes = pyzbar.decode(inverted)
print (barcodes)

Распечатка показала, что декодированный тип - QRCODE, а данные - GOAL.

[Decoded(data='GOAL', type='QRCODE', rect=Rect(left=5, top=13, width=228, height=212), 
polygon=[Point(x=5, y=222), Point(x=233, y=225), Point(x=220, y=19), Point(x=13, y=13)])]

Надеюсь, эта помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...