Python을 사용하여 QR 코드를 만들고 디코딩하는 방법

Python을 사용하여 QR 코드를 만들고 디코딩하는 방법

QR 코드(빠른 응답 코드)는 인코딩된 데이터를 저장하는 매트릭스 바코드 유형입니다. 대용량 데이터를 즉시 저장하고 액세스할 수 있는 기능 때문에 Quick Response 코드라는 이름이 붙었습니다. 포스터, 잡지, 영화관, 웹사이트, 체육관, 광고 등 모든 곳에서 이러한 QR 코드를 찾을 수 있습니다.





Python을 사용하여 고유한 QR 코드를 생성하고 사용자 지정하고 QR 코드에서 정보를 디코딩할 수 있습니다.





Python 환경 설정

Python 프로젝트에 대해 격리된 환경을 설정하는 것이 좋습니다. 이렇게 하면 프로젝트의 종속성에 대해 더 많이 이해할 수 있습니다.





가상 환경 만들기

당신은 할 수 있습니다 파이썬에서 가상 환경 만들기 virtualenv, virtualenvwrapper 또는 Anaconda 배포와 같은 여러 가지 방법이 있습니다. 여기서 우리는 사용할 것입니다 가상 환경 가상 환경을 생성합니다.

  1. 를 사용하여 폴더를 생성합니다. mkdir [폴더] 이 프로젝트를 생성할 위치에 명령을 입력합니다.
  2. 유형 cd [폴더] 명령 프롬프트에서 새 디렉토리로 이동합니다.
  3. 유형 virtualenv [환경 이름] 가상 환경을 생성합니다.
  4. 다음을 입력하여 가상 환경을 활성화하십시오. [환경 이름]Scriptsactivate

필수 패키지 설치

pip 명령을 사용하여 필요한 Python 패키지를 설치합니다. 당신이 가지고 있는지 확인 시스템에 설치된 pip .



명령 프롬프트에서 다음 명령을 실행합니다.

pip3 install opencv-python qrcode numpy Image

모든 패키지를 한 번에 설치하지 않으려면 다음과 같이 하나씩 설치할 수 있습니다.





pip3 install opencv-python

이것은 주로 컴퓨터 비전, 머신 러닝, 이미지 처리에 사용되는 opencv-python 패키지를 설치합니다.

pip3 install qrcode

이것은 QR 코드를 생성하고 읽는 데 사용되는 qrcode python 패키지를 설치합니다.





pip3 install numpy

이것은 배열 작업에 사용되는 numpy python 패키지를 설치합니다.

pip3 install Image

이렇게 하면 파일에서 이미지를 로드하고 새 이미지를 만드는 여러 기능을 제공하는 Image python 패키지가 설치됩니다.

QR 코드 생성

코드를 생성하려면 다음을 사용하여 새 파일을 만듭니다. .py QR 코드를 생성하는 코드가 있는 확장자.

Python 파일에 다음 코드를 붙여넣고 프로그램을 실행합니다.

Netflix에서 프로필을 삭제하는 방법
import qrcode
# Data for which you want to make QR code
# Here we are using the URL of the MakeUseOf website
data = 'https://www.makeuseof.com/'
# File name of the QR code Image
# Change it with your desired file name
QRCodefile = 'MUOQRCode.png'
# Generating the QR code
QRimage = qrcode.make(data)
# Saving image into a file
QRimage.save(QRCodefile)

이렇게 하면 주어진 데이터에 대한 QR 코드 이미지(MUOQRCode.png)가 생성됩니다(이 경우, www.makeuseof.com ). 생성된 QR 코드는 다음과 같습니다.

맞춤형 QR 코드 생성

qrcode 라이브러리의 놀라운 기능으로 QR 코드를 사용자 정의할 수 있습니다. QR 코드의 채우기 색상, 배경색, 이미지 크기, 상자 크기 및 테두리 두께를 변경할 수 있습니다.

이미지 및 상자 크기 변경

다음을 사용하여 QR 코드 이미지 크기를 변경할 수 있습니다. 버전 QRCode 클래스의 매개변수. 1에서 40 사이의 정수를 허용합니다. 여기서 1은 21x21 행렬에 해당하고 40은 185x185 행렬에 해당합니다. 데이터가 지정된 크기에 맞지 않으면 버전이 자동으로 확장됩니다.

마찬가지로 다음을 사용하여 상자 크기를 변경할 수 있습니다. box_size QRCode 클래스의 매개변수. QR 코드에서 각 상자의 픽셀을 지정합니다.

# Importing libraries
import qrcode
import numpy as np
# Data which for you want to make QR code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR code Image file
QRCodefile = 'CustomisedImgBoxQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode(version=1, box_size=12)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)
# print the image size (version)
print('Size of the QR image(Version):')
print(np.array(qrObject.get_matrix()).shape)

다음 QR 코드 이미지 파일이 생성됩니다.

또한 다음 출력이 표시됩니다.

Size of the QR image(Version):
(33, 33)

버전은 데이터 크기에 따라 자동으로 확장됩니다.

채우기 색상 변경

다음을 사용하여 QR 코드의 채우기 색상을 변경할 수 있습니다. 채우기_색상 매개변수.

# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedFillColorQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(fill_color='red')
# Saving image into a file
image.save(QRCodefile)

다음 QR 코드 이미지 파일이 생성됩니다.

배경색 변경

QR 코드의 배경색은 다음을 사용하여 변경할 수 있습니다. back_color 매개변수.

# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedBGColorQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(back_color='blue')
# Saving image into a file
image.save(QRCodefile)

다음 QR 코드 이미지 파일이 생성됩니다.

테두리 두께 변경

를 사용하여 QR 코드의 테두리 두께를 변경할 수 있습니다. 국경 QRCode 클래스의 매개변수.

# Importing libraries
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedBorderQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode(border=10)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)

다음 QR 코드 이미지 파일이 생성됩니다.

QR 코드 이미지를 사용하여 QR 코드 디코딩

Python의 OpenCV 라이브러리를 사용하여 QR 코드 이미지의 정보를 디코딩할 수 있습니다. OpenCV에는 QR 코드 감지기가 내장되어 있습니다. 감지기를 사용하여 QR 코드에서 데이터를 디코딩할 수 있습니다.

# Import Library
import cv2
# Name of the QR Code Image file
filename = 'MUOQRCode.png'
# read the QRCODE image
image = cv2.imread(filename)
# initialize the cv2 QRCode detector
detector = cv2.QRCodeDetector()
# detect and decode
data, vertices_array, binary_qrcode = detector.detectAndDecode(image)
# if there is a QR code
# print the data
if vertices_array is not None:
print('QRCode data:')
print(data)
else:
print('There was some error')

제공된 이미지가 유효한 QR 코드인 경우 디코딩된 데이터가 표시됩니다. 이 경우 다음과 같은 출력이 생성됩니다.

QRCode data:
https://www.makeuseof.com/

웹캠을 사용하여 QR 코드 라이브 디코딩

대부분의 사람들은 QR 코드를 스캔하기 위해 웹캠을 사용하는 경향이 있습니다. Python 및 OpenCV 라이브러리의 잠재력을 사용하여 QR 코드에서 데이터를 쉽게 디코딩할 수 있습니다.

import cv2
# initalize the camera
cap = cv2.VideoCapture(0)
# initialize the OpenCV QRCode detector
detector = cv2.QRCodeDetector()
while True:
_, img = cap.read()
# detect and decode
data, vertices_array, _ = detector.detectAndDecode(img)
# check if there is a QRCode in the image
if vertices_array is not None:
if data:
print('QR Code detected, data:', data)
# display the result
cv2.imshow('img', img)
# Enter q to Quit
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

이 코드를 실행하면 웹캠이 자동으로 열립니다. 웹캠 앞에 QR 코드를 갖다 대면 데이터가 디코딩되어 명령 프롬프트에 표시됩니다.

QR 코드 인코딩 및 디코딩이 쉬워졌습니다.

이 문서를 사용하면 원하는 대로 QR 코드를 쉽게 인코딩, 디코딩 및 사용자 지정할 수 있습니다. 제공된 코드를 사용하여 완전한 QR 코드 스캐너 생성기 애플리케이션을 만들 수도 있습니다.

QR 코드를 사용하는 창의적인 방법에는 여러 가지가 있습니다. 창의력을 발휘하고 원하는대로 QR 코드를 사용하십시오.

공유하다 공유하다 트위터 이메일 Android 및 iPhone에서 QR 코드를 스캔하는 방법

Android와 iPhone 모두에 사전 설치된 QR 코드 스캐너가 있습니다. 사용 방법은 다음과 같습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • QR 코드
  • 파이썬
저자 소개 유브라지 찬드라(60편 게재)

Yuvraj는 인도 델리 대학교의 컴퓨터 공학 학부생입니다. 그는 풀 스택 웹 개발에 열정적입니다. 그는 글을 쓰지 않을 때 다양한 기술의 깊이를 탐구하고 있습니다.

플레이 스테이션 이름을 변경할 수 있습니까
유브라지 찬드라가 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.