지금까지 등기번호 뒤에 4자리 혹은 6자리로 검색해서
체크를 했는데
이게 등기가 많을때에는 다른 등기번호의 중간부분과 겹치는 경우도 있어서
찾기를 여러번 눌러야 제대로 찾는 경우가 있었다
그리고 무엇보다 등기번호보고 숫자 키보드로 검색하는게
은근 귀찮고 비효율적이다
마침 안쓰는 웹캠이 생겨서
모든 등기우편에는 등기번호바코드가 존재한다!
그래서 웹캠을 바코드리더기로 사용하면 매우 편할것같았다
playsound는 에러가 계속떠서 그냥 winsound 이용했다
그리고 웹캠이 연결되어있지 않으면 실행이 되지 않는다
import cv2
import pyzbar.pyzbar as pyzbar
import clipboard
import pyautogui
import winsound as ws
#from playsound import playsound
def beepsound():
freq = 2700 # range : 37 ~ 32767
dur = 500 # ms
ws.Beep(freq, dur) # winsound.Beep(frequency, duration)
used\_codes = \[\]
data\_list = \[\]
try:
f = open("qrbarcode\_data.txt", "r", encoding="utf8")
data\_list = f.readlines()
except FileNotFoundError:
pass
else:
f.close()
cap = cv2.VideoCapture(0, cv2.CAP\_DSHOW)
cap.set(3, 640)
cap.set(4, 480)
for i in data\_list:
used\_codes.append(i.rstrip('\\n'))
while True:
success, frame = cap.read()
for code in pyzbar.decode(frame):
cv2.imwrite('qrbarcode_image.png', frame)
my_code = code.data.decode('utf-8')
if my_code not in used_codes:
print("인식 성공 : ", my_code)
beepsound()
#playsound("qrbarcode_beep.wav")
clipboard.copy(my_code)
pyautogui.press('insert')
used_codes.append(my_code)
f2 = open("qrbarcode_data.txt", "a", encoding="utf8")
f2.write(my_code+'\n')
f2.close()
elif my_code in used_codes:
clipboard.copy(my_code)
print("이미 인식된 코드 입니다.!!!")
pyautogui.press('insert')
beepsound()
#playsound("qrbarcode_beep.wav")
else:
pass
cv2.imshow('QRcode Barcode Scan', frame)
cv2.waitKey(1)
나는 인식된 번호를 복사해서 클립보드안에 넣기만 하면 되었기에
clipboard 라이브러리를 사용했다
연습삼아 주변에 있는 아무 바코드번호를 이용했다
바코드 인식 최적의 거리를 찾아
책상에 네임팬으로 표시했다
저 구역안에 들어와야 인식한다
사용해보니
등기 업무 효율이 기존 2배나 빨라졌다
반응형
'웹 개발 > 🐍 Python' 카테고리의 다른 글
여러 모듈이 있는 python 실행파일만들기 (0) | 2024.01.31 |
---|---|
[pytube] 유튜브영상을 mp3파일로 다운로드 (0) | 2022.05.23 |
키로깅프로그램(Pynput, Pyinstaller) (0) | 2022.01.18 |
주차감면 키오스크(PyQT,Selenium) (0) | 2021.09.23 |
우편업무 자동화(Excel Visual Basic, pyautogui) (0) | 2021.09.16 |