Я использую 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.
Я поставил RGB2GRAY вместо BGR2RGB, и он отлично работал, и он декодировал изображение, которое я поднял с экрана на своем телефоне – vaughnmcbob1