1
를 사용하여 QR 코드를 스캔 할 수 없습니다 "[]"Zbar는 QR을 읽을 할수 없어 것을 의미 출력으로 ... 뭔가 문제가 내 이미지 형식? 왜 이것이 작동하지 않는지도 모르겠습니다.
내 코드 :
import numpy as np
import cv2
import zbar
import sys
class ImageSource(object):
def __init__(self,source):
self.is_camera = type(source)==int
if self.is_camera:
self.source = cv2.VideoCapture(source)
else:
self.source = cv2.imread(source,1)
def get_size(self):
if self.is_camera:
return (int(self.source.get(3)),int(self.source.get(4)))
else:
return (self.source.shape[1],self.source.shape[0])
def get_next(self):
if self.is_camera:
return self.source.read()[1]
else:
return self.source
def release(self):
if self.is_camera:
self.source.release()
class QRScanner(object):
def __init__(self, width, height):
self.scanner = zbar.ImageScanner()
self.scanner.parse_config('enable')
self.width = width
self.height = height
def get_qrcodes(self, image):
zbar_img = self.cv2_to_zbar_image(image)
self.scanner.scan(zbar_img)
result=[]
for symbol in zbar_img:
if symbol.type!=zbar.Symbol.QRCODE: continue
fixed_data = symbol.data.decode("utf8").encode("shift_jis").decode("utf8")
result.append(QRCode(fixed_data,symbol.location))
del(zbar_img)
return result
def cv2_to_zbar_image(self, cv2_image):
return zbar.Image(self.width, self.height, 'Y800',cv2_image.tostring())
cap = ImageSource("1.png")
frame = cap.get_next()
scanner = QRScanner(cap.get_size()[0],cap.get_size()[1])
print scanner.get_qrcodes(frame)
감사합니다,하지만 미안 비디오 스트림 작업 , 그래서 이것을 cv2 – abea
@abea로 고쳐야합니다. 그럴만 한 것이지만, 아마도 Pil (저)와 함께 작동하는 QR로 먼저 시도해보십시오. 그래서 결과를 얻어야합니다. 나는 "QR 이미지 샘플"로 인터넷 검색을 통해 발견 된 몇 개의 이미지를 가지고 시험해 보았고 첫 2 또는 3은 전혀 작동하지 않았다. – sberry