Kodekasse: Brug QR koder i Behandling - 💡 Fix My Ideas

Kodekasse: Brug QR koder i Behandling

Kodekasse: Brug QR koder i Behandling


Forfatter: Ethan Holmes, 2019

Denne kodeboks viser dig hvordan du bruger ZXing-biblioteket (udtalet "Zebra Crossing") til at identificere QR-koder i et live webcam-feed. (Selvom Processing har et yderst bidragende bibliotek kaldet QRCode, er ZXing meget hurtigere og kan gøre genkendelse i realtid.) Skissen søger efter QR-koder med et kodet O'Reilly-bøger ISBN (ISBN'er er standard bog-id'er). Når den finder en, overlejrer den bogens coverbillede til videoen over QR-koden.

Om QR-koder Før du hopper ind i koden, lidt baggrund. En QR-kode har to grundlæggende dele - de tre positioneringselementer, som er de store firkantede blokke i de tre hjørner, og dataelementerne, som er alt andet. Positioneringselementerne hjælper softwaren med at bestemme QR-kodens placering og orientering. Dataelementerne repræsenterer de kodede data. Det kan for eksempel være et produktnummer, en webadresse eller (i vores tilfælde her) et ISBN. Koden har også nogle oplysninger, der bruges til fejlkorrektion. Følgende billede skal give dig den grundlæggende ide:

Du kan bruge et websted som Kaywa til at generere koden. Her er et eksempel på hvordan man genererer en kode til "9780596510510", ISBN for Tom Igoes bog Gør ting Talk:

Opsætning af skitse

Den første ting at gøre er at downloade ZXing og brug din Java compiler til at oprette to filer: core.jar og javase.jar. Hvis du er komfortabel med Java, skal du bare gå ind i "kerne" og "javase" -katalogerne og køre myr for at bygge jarfilerne.

Hvis du ikke er, har jeg samlet dem for dig. (Men fortæl ikke nogen - dette overtræder sandsynligvis nogle licenskrav eller den anden. Bare download javase.jar og core.jar. (En jarfil som en zip-fil til Java, der komprimerer og bundler flere filer.)

Når du har jar-filerne, skal du slukke for Processing og derefter bruge "Sketch -> Add File" for at tilføje dem til dit projekt. Derefter indsættes i skitse-koden i hovedkodesvinduet. Du kan hente den fra qr_codes.pde filen eller trække den fra følgende kodekasse:

Print et par QR-koder til forskellige O'Reilly bøger og start skitse. Når du viser koderne til webkameraet, bør du se omslaget vises efter kort forsinkelse. Selvfølgelig kan du kode alle andre oplysninger, du kan lide.

Diskussion Opsætningen ligner den, vi har brugt i stillingerne på OpenCV. Først opretter vi et nyt læserobjekt, som dette:

com.google.zxing.Reader reader = ny com.google.zxing.MultiFormatReader ();

Så sender vi læseren et billede, der kan indeholde en QR-kode. I dette tilfælde passerer vi bare rammerne der kommer ind fra webkameraet. Det er lidt mere komplekst, fordi vi skal lave et par transformationer på råbilledet, før vi kan bruge dekoderen - det hele gøres i tegne() metode:

LuminanceSource source = Ny BufferedImageLuminanceSource ((BufferedImage) cam.getImage ()); BinaryBitmap bitmap = ny BinaryBitmap (ny HybridBinarizer (kilde)); Resultatresultat = reader.decode (bitmap);

Når vi har ringet til afkode (), det læser objekt vil have data om eventuelle QR koder det er registreret. Det getResultPoints () metode returnerer koordinaterne for hver af positionsindikatorerne, og Gettext () Metoden returnerer den kodede tekst. Forudsat at vi fandt noget, forsøger vi bare at trække det tilsvarende dæk fra O'Reilly-stedet og vise det. Som en smule rynke holder vi styr på det sidste ISBN, vi fandt, så vi ikke hele tiden indlæser det samme billede på hver ramme.

Denne demo skal give dig det meste af, hvad du har brug for til at lave din egen QR-hacking med Processing. Hav det sjovt!

PS: Husk, at du bruger Windows, du skal installere WinVDIG og QuickTime for at bruge webkameraet i Processing.

Mere: Tjek alle kodekolonnerne her

I Maker Shed:


Kom godt i gang med behandling Lær computerprogrammering på nem måde med Processing, et simpelt sprog, der giver dig mulighed for at bruge kode til at tegne tegninger, animationer og interaktiv grafik. Programmeringskurser starter normalt med teori, men i denne bog kan du springe lige ind i kreative og sjove projekter. Det er ideelt for alle, der ønsker at lære grundlæggende programmering, og tjener som en simpel introduktion til grafik til personer med nogle programmeringsevner.



Du Kan Være Interesseret

Hobby Rocketeers Byg Amazing Upsized Estes Gyroc

Hobby Rocketeers Byg Amazing Upsized Estes Gyroc


Denne uge i Making: Maker Faire Cairo, Crazy Crayons, Casting Tips og meget mere

Denne uge i Making: Maker Faire Cairo, Crazy Crayons, Casting Tips og meget mere


Få klar til Arduino Day med disse fantastiske Meetups og Projekter

Få klar til Arduino Day med disse fantastiske Meetups og Projekter


Denne Spacey Arcade Game Controller er ude af denne verden

Denne Spacey Arcade Game Controller er ude af denne verden