[testXJIG QR 코드 인식 고도화 #3-1] QR 코드 인식을 위한 S/W 로직

2023. 7. 18. 20:46프로젝트 로그/테스트x솔루션 JIG 개발기

반응형

QR 코드 인식을 위한 로직

카메라에서 영상을 추출하고 QR 코드 인식을 위한 로직은 아래 그림과 같다.

 

 

카메라 영상 추출

먼저 카메라에서 전체 이미지를 읽어 온다. 카메라가 찍을 대상은 아래 사진과 같은 사각형 박스이며, 해당 박스에는 6개의 임베디드 모듈이 장착되어 있다.

 

채널별 이미지 자름, 이미지 전처리, QR 코드 인식

 

JIG S/W는 아래 사진과 같이 전체 이미지를 읽은 후, 파란색 네모칸 영역을 기반으로 채널 별 이미지를 자르고 이미지를 전처리 한다.

 

JIG S/W 사용한 전처리 기법들은 아래와 같다.

  1. GrayScale로 QImage를 변환
    1. QImage 객체.convertToFormat(QImage.Format_Grayscale8)
  2. 흑백 반전
    1. cv2.bitwise_not
  3. 블러핑
    1. 이웃 픽셀들의 차이를 감소시켜 영상을 부드럽게 만들고 Noise 제거
    2. 가우시안 필터 사용
    3. cv2.GaussianBlur()
  4. 이미지 임계 처리 ( 지역 이진화 )
    1. cv2.adaptiveThreshold()

채널별 이미지를 자르고 전처리 완료된 이미지는 아래와 같은 형태로 보인다.

( 모듈 제조사의 정보 보호를 위해 아래 이미지에서는 QR 데이터와 모듈 이름을 모자이크 처리 함. 아래 모자이크는 JIG S/W 기능에 포함되어 있지 않음. )

 

위 사진에서 나온 전처리 이미지를  PyZbar & OpenCV의 cv2.QRCodeDetector()에게 전달해 QR 코드 값을 추출한다.

 

 

참고자료

https://opencv-python.readthedocs.io/en/latest/doc/09.imageThresholding/imageThresholding.html

https://development-sehee.tistory.com/18

 

반응형