상세 컨텐츠

본문 제목

[Python] QR 코드 디코더

Python 예제

by D.119 2024. 3. 17. 15:10

본문

https://www.youtube.com/watch?v=SqvVm3QiQVk&t=3192s

Code With Tomi 튜토리얼에서 나만의 QR 코드를 만들고

해독(decode)하는 법을 배울 것입니다.

↓ ↓ ↓

from pyzbar.pyzbar import decode
from PIL import Image

img = Image.open('C:/Python/Code With Tomi/QrCode_With_Python/QRimg/myqrcode.png')

result = decode(img)

print(result)

↓ ↓ ↓

필요한 라이브러리 임포트:

from pyzbar.pyzbar import decode
from PIL import Image

→ pyzbar.pyzbar 모듈에서 decode 함수를 임포트 합니다.

이 함수는 이미지 내의 바코드나 QR 코드를 찾아내어 디코딩하는 기능을 제공합니다.

→ PIL (Python Imaging Library)의 Image 모듈은 이미지 파일을 열고, 처리하는 기능을 제공합니다.

여기서는 QR 코드가 포함된 이미지 파일을 열기 위해 사용됩니다.

↓ ↓ ↓

이미지 파일 열기:

img = Image.open('C:/Python/Code With Tomi/QrCode_With_Python/QRimg/myqrcode1.png')

→ Image.open() 함수는 주어진 경로의 이미지 파일을 엽니다.

이 경우, 'C:/Python/Code With Tomi/QrCode_With_Python/QRimg/myqrcode1.png' 경로에 있는

이미지 파일을 열어 img 변수에 할당합니다.

→ 파일 경로는 실제 파일의 위치에 따라 다를 수 있으므로, 실제 경로로 적절히 변경할 필요가 있습니다.

↓ ↓ ↓

QR 코드 디코딩:

result = decode(img)

→ decode 함수는 앞서 열린 이미지 파일(img)에서 QR 코드를 찾아내고,

그 내용을 디코딩합니다. 디코딩된 결과는 result 변수에 저장됩니다.

→ 디코딩된 결과는 텍스트 데이터뿐만 아니라, QR 코드의 위치 정보 등 다양한 메타데이터를 포함할 수 있습니다.

↓ ↓ ↓

결과 출력:

print(result)

→ print 함수를 사용하여 디코딩된 결과를 출력합니다. 결과는 리스트 형태로 반환되며,

리스트 안의 각 아이템은 디코딩된 QR 코드의 정보를 담고 있는 Decoded 객체입니다.

→ 출력 결과는 QR 코드의 실제 데이터(예: URL, 텍스트 메시지 등)와 함께, QR 코드의 종류,

위치 정보 등을 포함할 수 있습니다.

↓ ↓ ↓

코드 실행 결괏값

↓ ↓ ↓

코드 실행 결괏값 설명

더보기

제공된 코딩 실행 결과는 QR 코드의 내용을 디코딩한 것입니다.

QR 코드의 기타 디코딩 정보는 다음과 같습니다:

타입 : QRCODE는 QR 코드라는 것을 나타냅니다.

직사각형 위치 및 크기 : Rect(left=50, top=50, width=330, hieght=330)는 QR 코드의 위치와 크기를 나타냅니다. 여기서 왼쪽 상단 모서리가 (50,50)에 위치하고, 너비와 높이가 각각 330 픽셀임을 알 수 있습니다.

다각형 위치 : polygon = [Point(x=50, y=50), Point(x=50, y=379), Point(x=380, y=380), Point(x=379, y=50)]는 QR 코드의 경계를 이루는 점들의 위치를 나타냅니다. 이는 QR 코드가 어떻게 기울어져 있거나 회전되어 있더라도 정확한 위치를 파악할 수 있게 도와줍니다.

품질 : quality=1은 QR 코드의 인식 품질을 나타냅니다. 이 값의 정확한 범위나 의미는 QR 코드를 인식하는 라이브러리나 애플리케이션에 따라 다를 수 있지만, 일반적으로 높은 값이 더 좋은 품질을 의미합니다.

방향 : orientation='UP'은 QR 코드가 위쪽을 향하고 있음을 나타냅니다. 즉, QR 코드가 올바르게 위쪽을 향해 정렬되어 있어 바로 읽을 수 있음을 의미합니다.

▼ ▼ ▼

[Error]

글쓴이의 경우 qrcode 라이브러리를 설치하였음에도 다음과 같은 오류가 나왔습니다.

더보기

libiconv.dll, libzbar-64.dll

<해결 방안>

https://www.microsoft.com/ko-KR/download/details.aspx?id=40784

위에 있는 링크를 통해 Visual C++ 2013 버전을 다운로드하면 됩니다.

글쓴이의 경우 64bit 운영체제이기 때문에 여러분의 운영체제에 맞춰 다운로드해 주세요.

그렇다면 왜 Visual C++ 2013 버전을 다운로드하여야 해결되는 것인가? 설명은 다음과 같습니다.

pyzbar 라이브러리 사용 시 발생한 libiconv.dll, libzbar-64.dll 오류는

해당 DLL 파일이 시스템에 없거나 호환되지 않기 때문에 발생했습니다.

이 문제는 Visual C++ 2013 버전을 설치하면서 해결되었는데,

이는 Visual C++ 2013에 포함된 특징 C++ 런타임 라이브러리나 의존선이
pyzbar 및 그 의존 DLL 파일들과의 호환성을 제공했기 때문입니다.

즉, Visual C++의 설치로 필요한 시스템 환경이 구성되어 pyzbar 사용 시 필요한 DLL 파일들과의 호환성 문제가 해결된 것입니다.

 

 

 

 

 

관련글 더보기