..tehdä C -ohjelma (MFC), joka osaa lukea esim. pdf- tai gif -kuvasta viivakoodin ja poimia viivakoodatun numero/merkkijonosarjan sieltä?
Mahtaako olla mahdollista
Viivakoodi
6615
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
Siihen en sano mitään, missä muodossa (pdf/gif/whatever) koodi kannattaa lukea, mutta kysymykseen voiko koodia lukea, vastaan kyllä. Aloita siitä, että hankit haluamasi viivakoodin speksit ja luet ne läpi. Koodin teko numeroista viivoiksi lienee helpompaa, joten aloita siitä. Silloin sulle aukeaa paremmin, miten tuo koodaus tapahtuu ja voit alkaa funtsia, miten homma menee toisinpäin. Pistä koodit alkuun vaikka jossain helpossa muodossa, esim. BMP-kuva tai vaikka ihan tekstitiedostoon.
...kyselisin, millaisia palveluja MFC tarjoaa esim. .bmp -kuvan tutkimiseen. Siis jos on vaikkapa skannattu lasku, jossa on tekstiä, numeroita ja jossain siellä alalaidassa se viivakoodi ja kaikki tämä on yhtenä suurena .bmp -kuvajaisena, kuinka softa voisi tunnistaa mistä viivakoodi alkaa, mihin se loppuu ja ennen kaikkea, mikä viiru merkkaa mitäkin. Kiitoksia paljon.
Luulenpa että se sun täytyy tehdä ihan itse. Siis se että se hakee mistä viivakoodi alkaa ja tunnistaa viivat... En ole pahemmin MFC:hen tutustunut, mutta olen aika varma että sellaisia siellä ei ole...
MFC:stä ei ole apua tähän ongelmaan.
Kannattaa etsiä hahmontunnistukseen liittyvää aineistoa netistä. Varmaan jotain algoritmeja löytyy...
> ja ennen kaikkea, mikä viiru merkkaa mitäkin.
Siis "viivakoodi" on nimeltää "EAN Barcode" ja siitä on erilaisia versioita standardisoitu.
Googleen hakemaan, näytti löytyvä paljon linkkejä.
Mun mielestä kuvaa pitäisi "skannata" eri kohdista eri suuntaisia suoria viivoja pitkin, ihan niin kuin kaupan kassalla viivakoodin lukija tekee lasersäteen avulla. Jos joltain skannausviivalta löytyy valkoisia ja mustia pikseleitä peräkkäin, niin päästään asiaan! Seuraavaksi lasketaan, onko valkoisia ja mustia alueita oikea määrä. Sitten ruvetaan mittailemaan niiden leveyksiä jne.
Joudut varmaan skannaamaan tuhansia viivoja, mutta sen ei pitäisi olla ongelma nykyisillä prosessoritehoilla. Ja että koneesta saa kaiken tehon irti, kannattaa tietenkin koodata C :lla.