https://amazefcc233.com/archives/148/
- Escanee el código QR en el sistema Raspberry Pi (Debian) a través de una cámara USB
- Python implementa Raspberry Pi para generar y reconocer códigos QR
- Raspberry Pi Python realiza reconocimiento de código QR-Zbar
- Instale imagemagick a través del código fuente en un entorno Linux
- experiencia progresiva jpeg (imagemagick)
- Comprender a fondo el problema de la pitón china ilegible
Listo
En el contenido proporcionado en este tutorial, debe instalar las siguientes herramientas:
sudo apt-get install python-imaging
sudo apt-get install qrencode
sudo apt-get install python-pygame
Si desea reconocer el código QR sin la necesidad de admitir chino, puede usar el comando de una tecla:sudo apt-get install zbar-tools
Si desea admitir chino, entonces ... siga las instrucciones en el tutorial para operar.
main.py
#! / usr / bin / env python # - * - codificación: UTF-8 - * - '' ' programa principal ' '' import qrcode while (True): print ("1: creación de qrcode") print ("2: reconocimiento de qrcode ") print (u" 3: salir ") select = int (input (u" por favor elija: ")) if select == 1: qrcode.erzeugen () elif select == 2: result = qrcode.lesen ( ) .strip () print (resultado) elif select == 3: print (u "Complete el programa ...") break
qrcode.py
#! / usr / bin / env python # - * - codificación: UTF-8 - * - import os, signal, subprocess from picamera import PiCamera strfile1 = "qrcode" def erzeugen (): text = input (u "enter text QRCode : ") os.system (" qrencode -o "+ strfile1 +". png '"+ text +"' ") print (u" QRCode en: "+ strfile1 +". png ") def lesen (): os.system (" raspistill -t 1000 -w 320 -h 240 -o /home/pi/Desktop/cam/qrcode/image.jpg ") print (u" raspistill terminado ") # zbarcam = subproceso.Popen (" zbarcam --raw - nodisplay / dev / video0 ", stdout = subprocess.PIPE, shell = True, preexec_fn = os.setsid) #print u" zbarcam se inició correctamente ..."" # qrcodetext = zbarcam.stdout.readline () zbarcam = subprocess.Popen ("zbarimg --raw /home/pi/Desktop/cam/qrcode/image.jpg", stdout = subprocess.PIPE, shell = True, preexec_fn = os.setsid) qrcodetext = zbarcam.stdout.readline () .decode () if qrcodetext! = "": #print (qrcodetext) pass else: print (u "qrcodetext 为 空") # os.killpg (zbarcam.pid, signal.SIGTERM) print (u "zbarcam se detuvo con éxito ... ") qrresult = f" QRCode: {qrcodetext} " return (qrresult)
No es necesario admitir el reconocimiento del código QR chino
Mientras todos los preparativos anteriores se hayan completado con éxito, puede ejecutar el código. Es lógico pensar que no debería haber problemas.
Necesidad de admitir el reconocimiento del código QR chino
Piense de nuevo antes de leer lo siguiente: ¿Realmente necesito admitir chino?
......
......
......
Si la respuesta sigue siendo sí, entonces por favor siga leyendo. De lo contrario, utilice una forma conveniente y rápida que no sea compatible con chino.
Porque esta parte del contenido incluirá algunos contenidos relacionados con la compilación y la instalación.
Instalar la biblioteca frontal
Primero, ejecute el siguiente comando para instalar la biblioteca de herramientas
wget http://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz tar -xzvf jpegsrc.v9b.tar.gz cd jpeg.9b ./configure make sudo make install
Entonces, es hora de instalar Imagemagick.
wget https://www.imagemagick.org/download/ImageMagick.tar.gz # El nombre de la carpeta puede ser diferente. Por favor, manejarlo con flexibilidad. cd ImageMagick-7.0.8-68 ./configure make sudo make install sudo ldconfig / usr / local / lib # Verifique que la instalación sea exitosa convert -version
Y, también necesitamos configurar una ola de enlaces blandos:
sudo ln -s / usr / local / include / ImageMagick-7 / usr / local / include / ImageMagick sudo ln -s / usr / local / include / ImageMagick-7 / MagickWand / usr / local / include / wand
Compila e instala zbar
Primero, descargue una copia del código fuente de zbar y prepare el compilador:
sudo apt-get install python-gtk2-dev sudo apt-get install libqt4-dev wget http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz tar -zxvf zbar-0.10 .tar.gz
Luego, necesitamos editar el código para que pueda admitir chino.
# Ingrese el directorio cd zbar.0.10 / zbar / qrcode / vim qrdectxt.c
Encuentre el código que se muestra en la imagen (sobre la línea 64) y reemplace el código en la parte encerrada en un círculo del marco rojo
(el contenido del reemplazo es el código japonés. Si desea reconocer el japonés, reemplace el otro código, pero no reemplace utf- 8)
Encuentre el código como se muestra en la imagen en el mismo archivo, y organice el orden de codificación
(se recomienda colocar primero el chino)
Guardar y salir.
¡Entonces, puede comenzar el trabajo de compilación!
# Primero regrese a su propio directorio (el directorio es solo un ejemplo, puede ser diferente para diferentes personas) cd /home/pi/Desktop/build/zbar-0.10 # El siguiente código ** no ** usará el comando zbarcam después de la instalación. Si desea utilizar zbarcam, elimine el comando --disable-video e instale las bibliotecas correspondientes usted mismo. / Configure --disable-video -without-qt -without-gtk -without-x -with-jpeg make sudo make install