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 파일들과의 호환성을 제공했기 때문입니다.
[Python] 마르코프 체인(Markov Chain) 텍스트 (0) | 2024.04.04 |
---|---|
[Python] QR 코드 인코더 (0) | 2024.03.17 |
[Python] 비밀번호 생성기 (2) | 2024.03.16 |
[Python] 숫자 맞추기 게임 (사용자) (2) | 2024.03.16 |
[Python] 숫자 맞추기 게임 (컴퓨터) (0) | 2024.03.16 |