2016-07-30 1 views
1

Я использую OpenCV версии 3.1.0 с Zbar (последняя версия в этой должности) и PIL (последняя версия, как этот пост)использованием OpenCV с Zbar в питона на окнах 8.1 для обнаружения QR коды

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" 

Я не понимаю, почему это не работает, он должен постоянно проверять qrcodes в текущем кадре видеопотока, и если он видит его, он его декодирует и печатает, что он говорит внутри. Я держу распечатанные qrcodes перед моя веб-камера, и она не работает, она показывает, что моя камера включена, и что есть видеопоток, происходящий так где-то в цикле while что-то происходит неправильно

I попробовал это раньше, когда коды qr на моем компьютере не распечатывались, и он работал нормально

Я также попытался показать мне текущий кадр с cv2.imshow("out",cv), но когда я сделал программу, был показан только большой серый квадрат, где он должен показывать видео поток, а затем он застыл, поэтому мне пришлось убить Netbeans.

ответ

0

zbar работает с изображениями в оттенках серого. Изменить cv = cv2.cvtColor(cv, cv2.COLOR_BGR2RGB) на cv = cv2.cvtColor(cv, cv2.COLOR_BGR2GRAY).

Я предполагаю, что вы используете this example code, чтобы использовать свою программу. Они выполняют преобразование цвета в оттенки серого с convert('L') на строке 15.

+0

Я поставил RGB2GRAY вместо BGR2RGB, и он отлично работал, и он декодировал изображение, которое я поднял с экрана на своем телефоне – vaughnmcbob1

Смежные вопросы