파이썬 초보입니다.
다름이 아니라 식당같은데서 포스기로 바코드를 찍으면
바코드 번호를 출력하는프로그램을 만들고싶은데, 대부분 포스기가 윈도우기반이라 가능하다고 들어서
웹에서 돌아다니는 포스기 리더기 코드를 찾았습니다.
아직 보고 만드는건 어려워서 작동이 가능한지 테스트 하고싶은데
코드를 보니 VideoCapture로 cv2모듈로 값을 받아오는데, 이부분이 바코드 찍었을떄 포스기에서 제대로 인식할지 의문입니다.
포스기에서 찍었을떄 값을읽어와야 할텐데 가능할지...
또한 항상 프로그램이 켜져있다가 포스에서 바코드를 찍으면 반응해야하는데, 어떤식으로 하면좋을지 팁이이나 코드를 조금 알려주시면 감사하겠습니다..
import pyzbar.pyzbar as pyzbar
import cv2
#pip install opencv-python
cap = cv2.VideoCapture(0)
i = 0
while(cap.isOpened()):
ret, img = cap.read()
if not ret:
continue
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
decoded = pyzbar.decode(gray)
for d in decoded:
x, y, w, h = d.rect
barcode_data = d.data.decode("utf-8")
barcode_type = d.type
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
text = '%s (%s)' % (barcode_data, barcode_type)
cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 2, cv2.LINE_AA)
cv2.imshow('img', img)
key = cv2.waitKey(1)
if key == ord('q'):
break
elif key == ord('s'):
i += 1
cv2.imwrite('c_%03d.jpg' % i, img)
cap.release()
cv2.destroyAllWindows()
Comment 1
-
지영아빠
2022.03.24 12:19
보통 무한 루프에서 pos의 tick이 들어오면 프로그램을 실행하시면 됩니다.
짜 놓으신 코드는 pos 단건의 처리에 대한 부분인 것 같으네요.