OpenCV에서 트랙바를 생성하려면 createTrackbar() 함수를 사용하며, 이 함수의 원형은 다음과 같습니다.
int createTrackbar(const String& trackbarname, const String& winname, int* value, int count, TrackbarCallback onChange = 0, void* userdata = 0); |
|
• trackbarname |
트랙바 이름 |
• winname |
트랙바를 생성할 창 이름 |
• value |
트랙바 위치를 받을 정수형 변수의 주소 |
• count |
트랙바 최대 위치 |
• onChange |
트랙바 위치가 변경될 때마다 호출되게 만들 콜백 함수 이름(함수의 포인터) 만약 NULL을 지정하면 콜백 함수는 호출되지 않고 value로 지정한 변수 값만 갱신됩니다. |
• userdata |
트랙바 콜백 함수에 전달할 사용자 데이터의 포인터 |
• 반환값 |
정상 동작하면 1을, 실패하면 0을 반환합니다. |
createTrackbar() 함수는 winname 이름의 창에 trackbarname 이름의 트랙바를 부착하고, 트랙바가 움직일 때마다 onChange에 해당하는 트랙바 콜백 함수가 호출되도록 설정합니다. 생성된 트랙바의 최소 위치는 항상 0으로 설정되고, 최대 위치는 네 번째 인자인 count 값으로 지정합니다. 정수형 변수를 하나 만들고 그 변수의 주소를 value 인자로 설정하면, 트랙바 위치가 해당 변수에 자동으로 저장됩니다. 사용자가 트랙바 콜백 함수에 전달하고 싶은 데이터가 있다면 userdata 인자를 통해 void* 형식으로 전달할 수 있습니다. 만약 콜백 함수에 전달할 사용자 데이터가 없다면 userdata 인자는 지정하지 않아도 됩니다.