파이썬 & 오픈소스 개발 질문과 답변 게시판

파이썬과 여러 오픈소스 기반 프레임워크 관련 질문 답변 게시판 입니다. 궁금하신 사항을 올려 주시면 빠른 시일내에 답변 드리도록 하겠습니다. 아울러, 개발 과정의 경우 간소화 시킨 문제 재현 코드나 운영일 경우 최근의 특이사항을 올려 주시면 답변 드리는 프런티어 분들이 더욱 상세한 답변을 드릴 수 있으니 많은 도움 되시길 바랍니다.

파이썬 초보입니다.

다름이 아니라 식당같은데서 포스기로 바코드를 찍으면 

바코드 번호를 출력하는프로그램을 만들고싶은데, 대부분 포스기가 윈도우기반이라 가능하다고 들어서 

 

웹에서 돌아다니는 포스기 리더기 코드를 찾았습니다.

아직 보고 만드는건 어려워서 작동이 가능한지 테스트 하고싶은데

 

코드를 보니 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()

 

 






XE Login