OCR på räkningar

Diskussion i 'Appförslag och idéer' startad av Buzz, 21 jul 2010.

  1. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Har fått in följande krashrapport:
    Kod:
    java.lang.RuntimeException: startPreview failed
    at android.hardware.Camera.startPreview(Native Method)
    at se.droidgiro.scanner.camera.CameraManager.startPreview(CameraManager.java:181)
    at se.droidgiro.scanner.CaptureActivityHandler.<init>(CaptureActivityHandler.java:57)
    at se.droidgiro.scanner.CaptureActivity.initCamera(CaptureActivity.java:501)
    at se.droidgiro.scanner.CaptureActivity.surfaceCreated(CaptureActivity.java:281)
    at android.view.SurfaceView.updateWindow(SurfaceView.java:538)
    at android.view.SurfaceView.dispatchDraw(SurfaceView.java:341)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
    at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
    at android.view.View.draw(View.java:6796)
    at android.widget.FrameLayout.draw(FrameLayout.java:354)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1894)
    at android.view.ViewRoot.draw(ViewRoot.java:1432)
    at android.view.ViewRoot.performTraversals(ViewRoot.java:1174)
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1752)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4627)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    at dalvik.system.NativeStart.main(Native Method)
    Med meddelande:
     
  2. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Ser ju inte direkt ut att vara relaterat till kontakt med webbläsare. Undrar vad som kan förhindra kameran från att skapa en preview.
     
  3. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

  4. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Wulax,

    Om jag skannar "20 00 8 >" på en faktura så får jag ingen träff. Och kollar jag noggrannare så anropas aldrig parse-metoden i Invoice. Dvs resultString är null. Om jag däremot tar med 3 tecken från ocr-numret till vänster så går det bra. Dvs något i stil med:
    "82 # 20 00 8 >"

    Mina tester går hand i hand med DreamHawks rapportering där ett belopp på 29 kr inte gick att skanna. Är det så att det krävs ett visst antal tecken för att dekodern ska vara nöjd och att vi har en bugg där någonstans?
    Du kan kanske använda den här bilden som test: http://akerfeldt.se/~gein/kort_belopp.jpg
    Fotade fakturan som jag har kört tester på.
     
  5. wulax

    wulax Kid Droid Medlem

    Blev medlem:
    7 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    7

    MINA ENHETER

    Ja, Scanner behöver ett visst antal tecken (4 tror jag) för en komplett analys annars avbryter den. Jag skrev det som en variabel någonstans. Uppenbarligen är det en bugg för jag får också det felet när jag testade skanna din bild.
    Jag ska läsa igenom Scanner och se om jag hittar buggen sedan. Har inte haft så mycket tid för projektet de senaste dagarna.
     
  6. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

    Ingen fara! Du kan titta på det vid tillfälle. Tills vidare är det iaf en känd bugg.
     
  7. theLadder

    theLadder Kid Droid Medlem

    Blev medlem:
    29 maj 2010
    Inlägg:
    37
    Mottagna gillanden:
    3

    MINA ENHETER

    Testade denna appen och tyckte den va både riktigt frän och användbar! Stort tack till alla som varit med och skapat den!
    Men den funkar inte optimalt när man har handelsbanken, man ser inte att bankgirot kom med förrens man trycker fram rutan "Registrera ny mottagare", och mottagare skrivs in som ny även om den ligger med i listan för tidigare mottagare!

    Funderade först på att gnälla över det här i tråden men efter att ha läst igenom den och insett vilket härligt crowd-sourcat projekt det här är va det ju bara sätta igång att pilla på det själv! :D

    Hämtade insperation från rimions bidrag:
    Här kommer mitt bidrag, koden söker först igenom listan med tidigare betalningsmottagare, hittar den rätt så väljer den den, gör den inte det så visar den rutan för "Lägg till ny mottagare" och skriver in bankgirot.
    PHP:
    function handleHandelsbanken(invoicetab) {
        
    chrome.tabs.executeScript(tab.id, {
            
    allFramestrue,
            
    code"if ('"invoice.amount +"' != '') document.getElementById('TRANSAKTIONSBELOPP').value= '"invoice.amount +"';" +
                  
    "if ('"invoice.reference +"' != '') document.getElementsByName('FRI_TEXT0')[0].value = '"invoice.reference +"';" +
                  
    "if ('"invoice.account +"' != ''){"+
                        
    "for(i=1; i<document.getElementById('MOTTAGARE').length;i++){"+
                            
    "if(document.getElementById('MOTTAGARE').options[i].text.split(' * ')[2] == '"invoice.account +"'){"+
                                
    "document.getElementById('MOTTAGARE').selectedIndex=i;"+
                                
    "break;"+
                            
    "}"+
                        
    "}"+
                        
    "if (document.getElementById('MOTTAGARE').selectedIndex == 0) {"+
                            
    "document.getElementById('expandedAdd').style.display = 'block';"+
                            
    "document.getElementById('collapsedAdd').style.display = 'none';"+
                            
    "document.getElementById('KTONR_BETMOTT').value= '"invoice.account +"';"+
                        
    "}"+
                  
    "}"
        
    });
    }
    Laddade ner chrome-tillägget från github och modifierade det och har testat så att det funkar fint! Funkade både när bankgirot redan låg i listan och när det inte gjorde det.

    Jag är helt grön på javascript så vore fint om nån kan kolla igenom det lite och se så jag inte gjort bort mig allt för mycket ;) Vore kul och höra om koden kan göras bättre med, såg att rimion använt sig av variabeln "hit" för att kolla om for-loopen hittade bankgirot i listan, men det borde väll vara smidigare att köra på mitt sätt? Om inte for-loopen ändrat alternativ i listan så står den på index=0 "Välj från listan", vilket betyder att man får lägga in bankgirot som nytt? Har som sagt testat att det funkar, men finns det nån nackdel med min metod? Blir ju smidigare kod...

    Ser allt ut som det ska får min kod gärna användas!
     
    Last edited: 20 feb 2011
    torkel_b gillar detta.
  8. rimion

    rimion Youth Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    176
    Mottagna gillanden:
    58
    Operatör:
    Telia
    Telefon:
    Google Pixel 3

    MINA ENHETER

    Operatör:
    Telia
    Telefon:
    Google Pixel 3
    Platta:
    Samsung Galaxy Tab S4
    Risken som jag ser det är om användaren av misstag valt något från listan redan så att selected index inte är 0. Jag har själv inte testat vad som händer om man valt något från listan och försöker lägga till en mottagare som inte redan finns. Både din och min kod borde kanske se till att inget är valt i listan när ny mottagare ska registreras?
     
  9. theLadder

    theLadder Kid Droid Medlem

    Blev medlem:
    29 maj 2010
    Inlägg:
    37
    Mottagna gillanden:
    3

    MINA ENHETER

    Bra tänkt!
    Väljer man både en i listan och skriver in nytt bankgiro antar jag att man får ett felmeddelande när man försöker utföra betalningen (orkar inte logga in o testa o_O)
    Det kanske vore idé att kontrollera så att inget är valt i listan och inget bankgiro är inskrivet först? Frågan är vad man ska göra om något är valt/inskrivet, ska man låta det stå kvar eller ska man ta bort det och fylla i det inscannade istället tro? Känns väll mest logiskt att det som står ersätts med det man scannat in?
     
  10. pupe

    pupe Kid Droid Medlem

    Blev medlem:
    22 maj 2010
    Inlägg:
    89
    Mottagna gillanden:
    8

    MINA ENHETER

    Det finns inte ett plugin till Firefox?
     
  11. huskul

    huskul Professional Droid Medlem

    Blev medlem:
    9 apr 2010
    Inlägg:
    2 454
    Mottagna gillanden:
    310
    Operatör:
    Tele2
    Telefon:
    Huawei

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    Huawei
    man kan nästan tro att ni betalar räkningar varje dag
    hur många sekunder tar det att knappa in?
    det går grymt mkt snabbare än att plocka fram luren sen försöka fokusera sen överföra
     
  12. RickardP

    RickardP Adult Droid Medlem

    Blev medlem:
    8 apr 2010
    Inlägg:
    515
    Mottagna gillanden:
    22

    MINA ENHETER

    hur många räkningar har du?

    Jag betalde igår 22 räkningar, tyvärr många små just denna månad, kunde scanna in alla utom 2st, jag skulle nog vilja påstå att man åtminstone halverar tiden när man kommer up i så många som jag hadde denna månad, klart har man 1-5st är det nog inte värt det.
     
  13. huskul

    huskul Professional Droid Medlem

    Blev medlem:
    9 apr 2010
    Inlägg:
    2 454
    Mottagna gillanden:
    310
    Operatör:
    Tele2
    Telefon:
    Huawei

    MINA ENHETER

    Operatör:
    Tele2
    Telefon:
    Huawei
    kör nästan allt på autogiro
    tror jag får 1-2 räkningar som jag får knappa

    att scanna sen kontrollera tar ju oxå tid
     
  14. hennish

    hennish Infant Droid Medlem

    Blev medlem:
    26 feb 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

    huskul: Good for you. Personligen tycker jag att det är fantastiskt skönt att slippa sitta och handknacka långa OCR-nummer, vilket inte bara är tidsödande utan även riskabelt då det är lätt att knappa fel.

    Men, denna tråd är ju som tur är inte till för att diskutera huruvida denna app ska finnas eller inte, så jag ska komma till saken:

    1. Går det att få appen att automatiskt skriva in PG/BG-nummer både på Skandiabankens "för-sida" och på själva "blanketten" som därefter dyker upp? Vore väldigt smidigt.

    2. Går det att lägga in en knapp som slår på/av kamerabelysningen? Vore trevligt för att kunna få bättre bilder även i dålig belysning.

    Jag betatestar gärna om det behövs!
     
  15. hennish

    hennish Infant Droid Medlem

    Blev medlem:
    26 feb 2012
    Inlägg:
    6
    Mottagna gillanden:
    0

    MINA ENHETER

  16. pakerfeldt

    pakerfeldt Adult Droid Medlem

    Blev medlem:
    28 feb 2010
    Inlägg:
    716
    Mottagna gillanden:
    72

    MINA ENHETER

  17. droidmaker

    droidmaker Kid Droid Medlem

    Blev medlem:
    15 mar 2012
    Inlägg:
    35
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag använder redan en app för att skanna mina fakturor. Sen har den ett tillägg till chrome som för över informationen till internetbanken :)
     
  18. malajo

    malajo Senior Droid Medlem

    Blev medlem:
    14 maj 2010
    Inlägg:
    1 680
    Mottagna gillanden:
    121

    MINA ENHETER

    Men du verkar inte vilja dela med dig av den eller?
    Länk eller namn hade i alla fall jag uppskattat ;)
     
  19. droidmaker

    droidmaker Kid Droid Medlem

    Blev medlem:
    15 mar 2012
    Inlägg:
    35
    Mottagna gillanden:
    0

    MINA ENHETER

    Jo, jag kan dela med mig. Jag kör pay2n :)
     
  20. Herrn

    Herrn Professional Droid Medlem

    Blev medlem:
    9 jan 2010
    Inlägg:
    2 465
    Mottagna gillanden:
    884
    Operatör:
    Telenor Telia
    Telefon:
    Note 10 Iphone Samsung s21 ultra

    MINA ENHETER

    Operatör:
    Telenor Telia
    Telefon:
    Note 10 Iphone Samsung s21 ultra
    Telefon 2:
    Iphone 12 pro max
    Telefon 3:
    OnePlus 7T pro
    Platta:
    iPad PRO 128GB
    Platta 2:
    Samsung galaxy S7+
    Använder ocrwire funkar klockrent