[tekst herkenning] 3 cijfers uit plaatje lezen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sjef dresen

sjef dresen

06/12/2019 17:38:59
Quote Anchor link
Hallo allemaal,

Voor een klein projectje zou ik graag de tekst (in mijn geval ALTIJD 3 cijfers) uit een *.JPG lezen.
Onderstaand het plaatje (320x240 resolutie) waarover het gaat:

Afbeelding
(uiteraard staan de 3 cijfers steeds op dezelfde plek!)

Denken jullie dat dit überhaupt mogelijk is? (ik vraag dit i.v.m. de redelijk lage resolutie c.q. mindere kwaliteit...)
Ik ben (op de Raspberry Pi) bekend met ALPR, maar tijdens diverse testen bleek het met dit plaatje niet te lukken.

Wie helpt me op weg? :)

Thanks!!!!

Sjef
 
PHP hulp

PHP hulp

22/12/2024 17:54:37
 
- Ariën  -
Beheerder

- Ariën -

06/12/2019 17:41:32
Quote Anchor link
Het is toch geen kentekenplaaat? Dus ik denk dat ALPR niet de juiste manier is.
Zijn er geen andere OCR-libraries?
 
Sjef dresen

sjef dresen

06/12/2019 17:51:50
Quote Anchor link
- Ariën - op 06/12/2019 17:41:32:
Het is toch geen kentekenplaaat? Dus ik denk dat ALPR niet de juiste manier is.


Nee precies, daar was ik dus ook al achter.
Vandaar ook de vraag hier of er een andere manier is.

Quote:
Zijn er geen andere OCR-libraries?


Ik heb er een aantal geprobeerd, maar omdat mijn kennis van PHP niet extreem groot is krijg ik die niet werkend.

Mvg,

Sjef
 
- Ariën  -
Beheerder

- Ariën -

06/12/2019 18:07:30
Quote Anchor link
Kan je hier wat mee?
https://maker.pro/raspberry-pi/tutorial/optical-character-recognizer-using-raspberry-pi-with-opencv-and-tesseract

Misschien is het zinvoller om het project te verdelen in twee stappen:
- Ga eerst een library zoeken die de gelezen waarde kan outputten
- Breng het dan naar PHP via system() bijvoorbeeld.
Gewijzigd op 06/12/2019 18:08:15 door - Ariën -
 
Sjef dresen

sjef dresen

06/12/2019 18:14:16
Quote Anchor link
- Ariën - op 06/12/2019 18:07:30:
Kan je hier wat mee?
https://maker.pro/raspberry-pi/tutorial/optical-character-recognizer-using-raspberry-pi-with-opencv-and-tesseract

Misschien is het zinvoller om het project te verdelen in twee stappen:
- Ga eerst een library zoeken die de gelezen waarde kan outputten
- Breng het dan naar PHP via system() bijvoorbeeld.


Bedankt voor je snelle reactie.

Eigenlijk is het niet de bedoeling om het met de Raspberry werkend te krijgen, ik gaf dit alleen aan dat ik bekend was (en het ermee geprobeerd had) met ALPR maar dat dit niet werkte (waarschijnlijk om de reden die je al noemde: het is geen kentekenplaat).

Dus het mooiste/fijnste zou gewoon een volledige oplossing in PHP zijn. Het plaatje komt van een webcam, dus daar hoef ik maar met cURL die *.JPG uit te halen om hem vervolgens met (iets in) PHP uit te lezen :)
 
- Ariën  -
Beheerder

- Ariën -

06/12/2019 19:36:06
Quote Anchor link
PHP heeft geen vaste mogelijkheden voor OCR, helaas. Hoogstens wrappers in combinatie met binairies die dit doen.

Toevoeging op 06/12/2019 20:21:52:

Tesseract is een mooie oplossing. Als je dit geinstalleerd hebt, kan je heel eenvoudig een afbeelding uitlezen op de volgende manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
tesseract input.png out.txt
 
Sjef dresen

sjef dresen

08/12/2019 05:44:24
Quote Anchor link
Het is me gelukt!!!! JEEEEUJ :-)


Ik ben begonnen met de foto uit de camera te halen:

Afbeelding

Daarna maak ik hier een black & white afbeelding van:

Afbeelding

Vervolgens kijk ik naar de pixels op de juiste plek of deze "AAN" of "UIT" staan.
Ik sla voor ieder cijfer (totaal dus 3) de segmenten op als een string met 1'en en 0'en (het cijfer 8 = "1111111")
En als laatste vergelijk ik dat met simpele if then om uiteindelijk de 3 cijfers neer te zetten.

Werkt gewoon 100% perfect. (nog geen enkele mismatch gehad!!)

Afbeelding

En omdat het toch om camerabeelden gaat, en omdat het in deze fase nog maar een "test" is en straks elders weer opnieuw wordt geïnstalleerd/opgebouwd heb ik voor het gemak een "kalibratie-programmaatje" geschreven zodat ik heel makkelijk en snel de posities van de (3x7) segmenten kan "leren". Het is een programma in VB.NET en spuugt de benodigde PHP-code uit. Op die manier heb ik binnen 1 minuut alle locaties van de segmenten. Of het nu (zoals in dit geval) een 320x240 afbeelding is, of straks een 1920x1080 of whatever. Dit werkt altijd!!

Afbeelding

Toch wel een beetje trots dat het zo goed werkt!!!!

Thanks allen.

Mvg,

Sjef
Gewijzigd op 08/12/2019 05:44:50 door sjef dresen
 
- Ariën  -
Beheerder

- Ariën -

08/12/2019 16:00:43
Quote Anchor link
Creatief bedacht! :-)
 
Aad B

Aad B

10/12/2019 12:32:21
Quote Anchor link
Voor je hele rij if statements om van binair naar getal te komen kan je een functie binary-to-decimal gebruiken:

PHP | bindec( ) Function

While working with numbers, many times we need to convert the bases of number and one of the most frequent used conversion is binary to decimal conversion. PHP provides us with a built-in function bindec() for this purpose. The bindec() function in PHP is used to return the decimal equivalent of the binary number. It accepts a string argument which is the binary number we want to convert to decimal.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.