Hallo allemaal,
ik zit met een interessant vraagstuk, voor een project moeten we barcodes scannen op wijnglazen, met als probleem: de barcode zit niet altijd recht:

Op dit moment heb ik een oplossing die als volgt werkt:
- Met een camera maken we een foto van het geheel, zoals hierboven zichtbaar.
- De foto delen we op in zes delen, één deel voor elk glas.
- Elke foto wordt apart geanalyseerd op een aanwezige barcode. Als het programma uiteindelijk in elk van de zes foto’s een barcode ziet wordt de batch als goedgekeurd verklaart en wordt de foto weggegooid. Mocht het programma er niet in slagen alle zes de foto’s te scannen wordt de batch opzij gezet en de foto opgeslagen, op deze manier kan je op de foto al zien wat er fout is met de barcode.
Dat 'analyseren' gebeurd op dit moment op een omslachtige manier: de foto wordt gescand, als hij geen barcode vindt, draait hij de foto bij en probeerd hij het opnieuw totdat hij een barcode vindt. Dit doet hij zes keer, een keer voor elk glas. Dit is in mijn ogen niet efficiënt genoeg, een soort brute-force approach. Daarom ging ik op zoek naar een andere oplossing.
Zelf heb ik een aantal dingen gevonden:
- http://www.pyimagesearch....des-images-python-opencv/ deze oplossing ga ik in de loop van de week testen, ik ben alleen bang dat deze oplossing, net als alle barcode scan API's alleen maar de barcode herkent als hij horizontaal staat.
- Toen dacht ik aan 'template matching' oftewel, kijken of er iets in de foto overeenkomt met het template(in dit geval een foto van de barcode):
http://docs.opencv.org/2....ng/template_matching.html deze oplossing werkt helaas ook alleen maar bij horizontale barcodes.
Ik vraag jullie niet om een kant-en-klare lap code(dat is ook niet toegestaan hier) maar ik ben wel benieuwd wat jullie aanpak zou zijn(welke richting zouden jullie kiezen?).
Alvast bedankt,
Thomas
ik zit met een interessant vraagstuk, voor een project moeten we barcodes scannen op wijnglazen, met als probleem: de barcode zit niet altijd recht:

Op dit moment heb ik een oplossing die als volgt werkt:
- Met een camera maken we een foto van het geheel, zoals hierboven zichtbaar.
- De foto delen we op in zes delen, één deel voor elk glas.
- Elke foto wordt apart geanalyseerd op een aanwezige barcode. Als het programma uiteindelijk in elk van de zes foto’s een barcode ziet wordt de batch als goedgekeurd verklaart en wordt de foto weggegooid. Mocht het programma er niet in slagen alle zes de foto’s te scannen wordt de batch opzij gezet en de foto opgeslagen, op deze manier kan je op de foto al zien wat er fout is met de barcode.
Dat 'analyseren' gebeurd op dit moment op een omslachtige manier: de foto wordt gescand, als hij geen barcode vindt, draait hij de foto bij en probeerd hij het opnieuw totdat hij een barcode vindt. Dit doet hij zes keer, een keer voor elk glas. Dit is in mijn ogen niet efficiënt genoeg, een soort brute-force approach. Daarom ging ik op zoek naar een andere oplossing.
Zelf heb ik een aantal dingen gevonden:
- http://www.pyimagesearch....des-images-python-opencv/ deze oplossing ga ik in de loop van de week testen, ik ben alleen bang dat deze oplossing, net als alle barcode scan API's alleen maar de barcode herkent als hij horizontaal staat.
- Toen dacht ik aan 'template matching' oftewel, kijken of er iets in de foto overeenkomt met het template(in dit geval een foto van de barcode):
http://docs.opencv.org/2....ng/template_matching.html deze oplossing werkt helaas ook alleen maar bij horizontale barcodes.
Ik vraag jullie niet om een kant-en-klare lap code(dat is ook niet toegestaan hier) maar ik ben wel benieuwd wat jullie aanpak zou zijn(welke richting zouden jullie kiezen?).
Alvast bedankt,
Thomas