• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Propozycja napisania programu do skanowania WR dla niewidomych.

Object Storage Arubacloud
0 głosów
249 wizyt
pytanie zadane 11 października 2021 w Nasze projekty przez Hajpa Użytkownik (880 p.)
Witam!

Czy chciałby ktoś pomóc w napisaniu programu dla niewidomych, który korzystając z kamery skanowałby i rozpoznawałby kody QR?

Założenia programu:

system Windows

rozpoznawanie kodu QR

odczyt informacji z kodu

możliwość przypisania dodatkowej informacji do danego kodu (tekst, audio)

edycja/usuwanie dodatkowej informacji przypisanej do kodu

 

Niewidomi używają naklejek z kodami QR do oznaczania różnych rzeczy np. dokumentów, żywności itp.

Jest wiele aplikacji na mobile, ale na windowsa nie znalazłem niczego. Znalazłem w necie skrypt Python, który bazuje na opencv, ale on często mi się zawiesza.

Jeśli ktoś chciałby spróbować swoich sił i jednocześnie zrobić coś pożytecznego to proszę o info.

Możecie też pisać na hajpahajpa@wp.pl

 

pozdrawiam i do zobaczenia!

1 odpowiedź

0 głosów
odpowiedź 11 października 2021 przez pvalue Dyskutant (8,720 p.)
pomysł gitara, tylko faktycznie ciężko zdobyć QR w C++/C# może Java. Ale można by dodać Ivone syntezator mowy.. Zgarnąć datacje na innowacyjny pomysł i jeszcze sprzedawać program z dotacja z PFronu. Chłopie jesteś GURU.
komentarz 11 października 2021 przez Hajpa Użytkownik (880 p.)
Jeśli chodzi o udźwiękowienie każdej aplikacji napisanej w Python to:

1.  https://pypi.org/project/accessible-output2/

Jest to biblioteka, dzięki której o ile jest włączony tzw. screen reader można w bardzo łatwy sposób wywołać mowę czyli komunikat może być wypowiedziany przez syntezator, który aktualnie jest używany.

2. Moduł pyttsx3 używa wbudowanej syntezy mowy, czyli Pauliny. Mowa ta działa nawet wtedy, gdy nie korzystamy z czytnika ekranu.

3. Google TTS. Całkiem fajna alternatywa, ale wymaga połączenia z netem.

 

Dodam jeszcze, że program powinien być dostępny dla czytników, więc jeśli chodzi o Python, to tylko Wx, ponieważ jego widgety są prawidłowo czytane przez czytniki.

 

Parę słów o czytnikach ekranu.

W chwili obecnej są dwa liczące się dla systemu Windows.

1. darmowy, open source NVDA, który używam.

2. komercyjny ok 1000 usd, JAWS.

Jest jeszcze windowsowy Narrator, ale wiele mu jeszcze brakuje do NVDA.

NVDA napisany jest w Python i Wx. Ma tę wielką zaletę, że po pierwsze jest darmowy i ma wiele wtyczek pisanych przez społeczność.

Z tego co wiem, Opencv nie ma możliwości wyświetlenia entry, więc trzeba będzie tu użyć Wx, żeby np. wprowadzić nazwę etykiety.

W następnym poście podeślę skrypt.

 

pozdrawiam
komentarz 12 października 2021 przez Hajpa Użytkownik (880 p.)
# https://www.makeuseof.com/how-to-create-and-decode-a-qr-code-using-python/
import numpy
import cv2
import pyperclip
import pyttsx3
engine = pyttsx3.init()
engine.setProperty('rate', 150)
engine.setProperty('volume', 0.9)

#import accessible_output2.outputs.auto
import playsound


#o = accessible_output2.outputs.auto.Auto()

# initalize the camera
cap = cv2.VideoCapture(0)
# initialize the OpenCV QRCode detector
detector = cv2.QRCodeDetector()
while True:
  _, img = cap.read()
  # detect and decode
  data, vertices_array, _ = detector.detectAndDecode(img)
  # check if there is a QRCode in the image
  if vertices_array is not None:
    if data:
      playsound.playsound('bubble.wav')
      engine.say(data)
      engine.runAndWait()
#      o.speak(data)
#      pyperclip.copy(data)
      print("QR Code detected, data:", data)
#      cv2.waitKey(0)
      key = cv2.waitKey(0) & 0xFF
      if key == ord('a'):
        print(data)
        engine.say(data)
        engine.runAndWait()

#        o.speak(data)
      elif key == ord('z'):
        engine.say("Zapisywanie nowej etykiety")
        engine.runAndWait()

        print("zapisz etykiete")
#        o.speak("zapisz etykietkę")




  # display the result
  cv2.imshow("szukam kodu qr", img)
  # Enter q to Quit
  if cv2.waitKey(1) == ord("q"):
    break
cap.release()
cv2.destroyAllWindows()

 

Podobne pytania

0 głosów
3 odpowiedzi 1,180 wizyt
pytanie zadane 21 listopada 2017 w Nasze projekty przez DoKo Games Użytkownik (690 p.)
0 głosów
2 odpowiedzi 661 wizyt
pytanie zadane 17 kwietnia 2022 w Sieci komputerowe, internet przez alpha.netrunner Gaduła (4,690 p.)
0 głosów
0 odpowiedzi 374 wizyt
pytanie zadane 24 maja 2022 w Rozwój zawodowy, nauka, praca przez mantus Nowicjusz (120 p.)

92,568 zapytań

141,421 odpowiedzi

319,627 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...