Skaner kodów kreskowych z kamerki przy użyciu OpenCV?

Skaner kodów kreskowych z kamerki przy użyciu OpenCV?
CA
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 4 lata
  • Postów:6
0

Cześć. Próbuję zaimplementować skaner kodów kreskowych używając BarcodeReader API. Wszystko działa dobrze dla zaimportowanego z dysku obrazka, kod zostaje wykryty i wypisany. Natomiast kiedy chcę przekształcić to na detekcję live z kamerki używająć OpenCV dostaję BarcodeReaderError, bo żaden kod nie zostaje wykryty. Czy ktoś wie jak sprawić żeby to dobrze działało? Męczę się z tym trzy dni i nie mam już pomysłów.

Kopiuj
from dbr import *
import cv2 

license_key = 'my_key'

title = "Barcode Reader"
cv2.namedWindow(title, 1)
capture = cv2.VideoCapture(0)
 
while True:
    ret, frame = capture.read()

    reader = BarcodeReader()
    reader.init_license(license_key)
    try:
        text_results = reader.decode_file_stream(bytearray(frame))
        if text_results != None:
            for text_result in text_results:
                print("Barcode type :")
                print(text_result.barcode_format_string)
                print("Barcode text :")
                print(text_result.barcode_text)

    except BarcodeReaderError as bre:
        print(bre)
    cv2.imshow(title, frame)
    code = cv2.waitKey(10)
    if code == ord('q'):
        break
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:około 5 godzin
  • Postów:4936
0

Dwie biblioteki, ciężko będzie zreoprodukować, spróbuj zapytać na SO.


CA
próbowałam i zamknęli mi pytanie :(
lion137
Może z powodów, które wymieniłem, spróbuj jakoś wyabstrahować problem; https://stackoverflow.com/help/minimal-reproducible-example
CA
taki miałam zamiar, ale chyba nie jestem w stanie bardziej tego zmodyfikować
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

bytearray(frame)

Ale w jakiej postaci to zwraca ten obraz? Jako co? Tablice pixeli? bajty jakiegoś PNG? I czego ta twoja libka oczekuje? Zgaduje że problem jest taki ze libka oczekuje dostać dane w jakimś konkretnym formacie a opencv zwraca dane w zupełnie innym formacie i się nie spina. Pewnie trzeba po drodze jakimś PILem to ogarnąć i skonwertować.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.