스캔이 잘 되게 하는 법
QR 코드가 안 읽히는 이유는 대부분 정해져 있습니다. 스캐너가 실제로 어떤 순서로 QR을 찾는지 알면, 무엇을 건드려도 되고 무엇은 건드리면 안 되는지가 분명해집니다.
스캐너가 QR을 읽는 순서
- 흑백으로 나눈다. 사진을 작은 블록으로 쪼개고 블록마다 밝기 기준을 정합니다.
- 모서리의 큰 사각형 세 개를 찾는다. QR의 위치와 기울기를 파악합니다.
- 격자를 복원한다. 사각형 사이의 점선 무늬로 칸 경계를 계산합니다.
- 칸의 한가운데 색을 읽는다. 칸 전체가 아니라 중심점 하나만 봅니다.
건드리면 안 되는 것
모서리의 큰 사각형 세 개는 스캐너가 QR의 존재 자체를 알아채는 단서입니다. 크기를 줄이거나 흐린 색으로 바꾸는 것은 피하세요.
반면 모서리를 둥글게 깎는 것은 괜찮습니다. 스캐너가 찾는 1:1:3:1:1 비율은 사각형 중심을 가로세로로 지나는 선에서 재는데, 모서리를 깎아도 그 선 위의 길이는 변하지 않기 때문입니다. 완전한 원형까지 깎아서 노이즈를 섞어 60번씩 읽혀봤을 때 각진 것과 인식률이 같았습니다.
QR 둘레의 빈 테두리도 마찬가지입니다. 규격은 칸 네 개 너비를 권장합니다. 배경 이미지 위에 QR을 바짝 붙여 얹으면 스캐너가 경계를 못 찾습니다.
건드려도 되는 것
점 크기는 80퍼센트 아래로 내리지 않기
스캐너는 칸의 중심점만 읽으므로 점을 조금 줄여도 됩니다. 문제는 선이 생각보다 급하게 무너진다는 점입니다.
| 점 크기 | 인식률 |
|---|---|
| 100% | 100% |
| 85% | 98% |
| 72% | 2% |
| 60% | 0% |
85퍼센트와 72퍼센트 사이에 절벽이 있습니다. 선명한 화면에서는 60퍼센트도 멀쩡히 읽히기 때문에 모니터로만 확인하면 이 절벽을 못 봅니다.
회색은 휘도 40퍼센트 이하로
완전한 검정이 아니어도 됩니다. 다만 스캐너가 주변보다 확실히 어둡다고 판단해야 합니다. #666666 정도까지가 안전한 편이고, 그보다 밝아지면 조명에 따라 실패합니다.
정리하면, 모양(둥글기)은 거의 공짜이고 크기와 색은 비쌉니다. 점을 둥글게 만드는 것은 마음껏 해도 되지만, 점을 작게 하거나 연하게 하는 것은 하나씩 조심스럽게 하세요.
비운 QR이 특히 약한 조건
- 어두운 실내에서 카메라 노이즈가 많이 낀 경우
- 화면을 촬영할 때 생기는 모아레 무늬
- 작게 인쇄되어 칸 하나가 몇 픽셀 안 되는 경우
- 구겨지거나 곡면에 붙은 경우
인쇄 크기 기준
칸 하나가 최소 0.4밀리미터는 되어야 일반적인 폰 카메라가 안정적으로 읽습니다. 실무에서는 여유를 둬서 25밀리미터 이상을 권합니다.
| 규격 | 한 변 칸수 | 권장 최소 크기 |
|---|---|---|
| V2 | 25칸 | 20mm |
| V5 | 37칸 | 25mm |
| V7 | 45칸 | 30mm |
| V10 | 57칸 | 38mm |
여백을 키우려고 규격을 올리면 같은 지면에서 칸이 잘아집니다. 인쇄물이라면 규격을 올리는 대신 복원 레벨을 올리는 쪽이 안전합니다.
만들고 나서 꼭 할 것
- 아이폰 기본 카메라와 안드로이드 기본 카메라에서 각각 확인
- 카카오톡, 네이버 등 실제로 사용자가 쓸 앱에서 확인
- 인쇄물이라면 실제로 인쇄해서 확인
- 팔을 쭉 뻗은 거리에서도 읽히는지 확인