현재 이미지 값을 변경하는 데 사용되는 여러 슬라이더가 있습니다. 내 슬라이더 각각에 대해 다른 기능으로 콜백하는 슬라이더 용 OpenCV 트랙 막대를 사용하고 있습니다. 슬라이더 콜백을 단일 콜백 함수로 지정하고 사용자 데이터를 사용하여 어떤 트랙 바를 호출했는지 식별하고 싶습니다.OpenCV 트랙 바를 사용하여 사용자 데이터를 전달하는 방법
Here is the documentation for the track bar
나는이 값이 아래에있는 내 콜백 함수를 형성 검색하는 방법도 *를 무효화하기 위해 전달되어야한다 값 어떤 확실치는 컴파일 내 트랙 바의 예입니다.
int ref = 1;
createTrackbar("Name","Window",0, 1, myFunc, &ref);
내 콜백 함수에서 ref 값을 가져 오려고합니다.
void myFunc(int value, void *userdata)
{
int val = *((int*)&userdata);
cout << val << endl;
}
포인터를 int로 변환하려고 할 때 문제가 발생했습니다. 이것은 온라인에서 발견 한 해결책으로 ref의 주소로 val을 제공합니다.
int val = *((int*)&userdata);
이것은 밸류에서 주소 값을 다시 얻어야하기 때문에 많은 번거 로움이 있습니다. 이 작업을 수행하는 더 쉬운 방법이 있습니까?
'int val = * ((int *) userdata)'이 아니어야합니까? – Bull
주소 yes 대신 값을 반환합니다. 이보다 사용자 데이터를 전송하는 더 좋은 방법이 있는지 알고 싶었습니다. –