만약 키보드에서 여러 키 입력에 대해 서로 다른 처리를 하고 싶다면 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 }