더북(TheBook)

4.3.2 마우스 이벤트 처리

OpenCV는 영상 출력 창에서 발생하는 마우스 이벤트를 사용자에게 전달하는 기능을 제공합니다. 이를 이용하면 OpenCV에 의해 만들어진 창에서 마우스 클릭에 반응하거나 마우스를 드래그하여 영상에 그림을 그리는 등의 동작을 수행할 수 있습니다. OpenCV 응용 프로그램에서 마우스 이벤트를 처리하려면 먼저 마우스 콜백 함수를 등록하고, 이후 마우스 콜백 함수에 마우스 이벤트를 처리하는 코드를 추가해야 합니다.

OpenCV에서 특정 창에 마우스 콜백 함수를 등록할 때에는 setMouseCallback() 함수를 사용합니다. setMouseCallback() 함수의 원형과 사용법은 다음과 같습니다.

void setMouseCallback(const String& winname, MouseCallback onMouse, 
 void* userdata = 0);

winname

마우스 이벤트 처리를 할 창의 이름

onMouse

마우스 이벤트 처리를 위한 콜백 함수 이름

userdata

콜백 함수에 전달할 사용자 데이터의 포인터

 

setMouseCallback() 함수는 winname 창에서 마우스 이벤트가 발생하면 onMouse로 등록된 콜백 함수가 자동으로 호출되도록 설정합니다. userdata 인자에는 사용자가 마우스 콜백 함수에 전달하고 싶은 데이터를 void* 형식으로 전달할 수 있습니다. 만약 콜백 함수에 전달할 사용자 데이터가 없다면 userdata 인자는 지정하지 않아도 됩니다.

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