Я пытаюсь создать мобильное приложение, которое сканирует штрих-код продукта, я ищу на net и нашел код, но код включает в себя 2 кнопки (запустить камеру и прочитать штрих-код), но я только Я хочу прочитать штрих-код без нажатия какой-либо кнопки, поэтому я должен удалить эти кнопки, и когда код запускается, я должен видеть только камеру, и когда я показываю ей штрих-код, она должна прочитать штрих-код без нажатия кнопки, это код:
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
import time
from kivy.factory import Factory
from kivymd.app import MDApp
from pyzbar import pyzbar
import cv2
Builder.load_string('''
<BottomAppBar@Screen>:
name: "bottom app bar"
BoxLayout:
spacing: dp(10)
orientation: "vertical"
<CameraClick>:
orientation: 'vertical'
Camera:
id: camera
resolution: (640, 480)
play: False
ToggleButton:
text: 'Start Camera'
on_press: camera.play = not camera.play
size_hint_y: None
height: '48dp'
Button:
text: 'Read Barcode'
size_hint_y: None
height: '48dp'
on_press : root.capture()
''')
class CameraClick(BoxLayout):
def capture(self):
camera = self.ids['camera']
timestr = time.strftime("%Y%m%d_%H%M%S")
camera.export_to_png("IMG_{}.png".format(timestr))
#decode barcode from captured image and add result on top of it
image = cv2.imread("IMG_{}.png".format(timestr))
barcodes = pyzbar.decode(image)
for barcode in barcodes:
(x ,y ,w ,h) = barcode.rect
cv2.rectangle(image, (x, y), (x+w, y+y), (0, 0, 255), 2)
#decoded barcode
barcodeData = barcode.data.decode("utf-8")
barcodeType = barcode.type
text = "{}({})".format(barcodeData, barcodeType)
cv2.putText(image, text, (x, y-10), cv2.FONT_HERSHEY_COMPLEX, 0.5, (0, 0, 255), 2)
print("barCode is %s"%text)
cv2.imshow("image", image)
cv2.waitKey(0)
class TestCamera(App):
def build(self):
return CameraClick()
TestCamera().run()```