OpenCV에서 QR 코드를 검출하고 해석하는 기능은 QRCodeDetector 클래스에 구현되어 있습니다.8 QRCodeDetector 클래스를 이용하여 영상에서 QR 코드를 검출하거나 해석하려면 먼저 QRCodeDetector 객체를 생성해야 합니다. QRCodeDetector 객체는 단순히 QRCodeDetector 클래스 타입의 변수를 하나 선언하는 방식으로 생성할 수 있습니다. 다음은 QRCodeDetector 타입의 변수 detector를 선언하는 예제 코드입니다.
QRCodeDetector detector;
QRCodeDetector 객체를 생성한 후에는 QRCodeDetector 클래스 멤버 함수를 이용하여 QR 코드를 검출하거나 문자열을 해석할 수 있습니다.
먼저 입력 영상에서 QR 코드 영역을 검출하기 위해서는 QRCodeDetector::detect() 함수를 사용합니다. QRCodeDetector::detect() 함수 원형은 다음과 같습니다.
bool QRCodeDetector::detect(InputArray img, OutputArray points) const; |
|
• img |
입력 영상. CV_8U 또는 CV_8UC3 |
• points |
(출력) QR 코드를 감싸는 사각형의 네 꼭지점 좌표 |
• 반환값 |
QR 코드를 검출하면 true, 검출하지 못하면 false를 반환합니다. |
QRCodeDetector::detect() 함수는 입력 영상 img에서 QR 코드를 검출하고, QR 코드를 감싸는 사각형의 꼭지점 좌표를 반환합니다. points 인자에는 보통 vector<Point2f> 또는 vector<Point> 타입의 변수를 지정합니다. points 인자로 반환받은 QR 코드 영역 위치 정보는 이후 QR 코드를 해석할 때 입력 정보로 사용됩니다.
8 QRCodeDetector 클래스의 기능은 무료 QR 코드 라이브러리인 QUirc를 기반으로 만들어졌습니다. QUirc 라이브러리에 대한 자세한 사항은 https://github.com/dlbeer/quirc 웹 사이트를 참고하기 바랍니다.