더북(TheBook)

만약 키보드에서 여러 키 입력에 대해 서로 다른 처리를 하고 싶다면 waitKey() 함수의 반환값을 정수형 변수에 저장하였다가 비교하는 작업을 수행합니다. 여러 키 입력에 대해 서로 다른 동작을 수행하는 예제 프로그램의 소스 코드를 코드 4-10에 나타냈습니다. 코드 4-10에 나타난 소스 코드 파일은 내려받은 예제 파일의 프로젝트 중 ch04/keyboard 프로젝트에서 확인할 수 있습니다.

코드 4-10 키보드 이벤트 처리 예제 프로그램 [ch04/keyboard]

01    #include "opencv2/opencv.hpp"
02    #include <iostream>
03     
04    using namespace cv;
05    using namespace std;
06     
07    int main(void)
08    {
09        Mat img = imread("lenna.bmp");
10     
11        if (img.empty()) {
12            cerr << "Image load failed!" << endl;
13            return -1;
14        }
15     
16        namedWindow("img");
17        imshow("img", img);
18     
19        while (true) {
20            int keycode = waitKey();
21     
22            if (keycode = = 'i' || keycode = = 'I') {
23                img = ~img;
24                imshow("img", img);
25            }
26            else if (keycode = = 27 || keycode = = 'q' || keycode = = 'Q') {
27                break;
28            }
29        }
30     
31        return 0;
32    }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.