C++ : int createTrackbar (const string & trackbarname, const string & winname, int * value, int count, TrackbarCallback onChange = 0, void * userdata = 0) 위의 함수는 userdata가 콜백 함수에서 사용되는 방법을 설명합니다.OpenCV createTrackbar 함수에서 유용하게 사용하는 방법은 6 번째 매개 변수 (사용자 데이터)입니다 (설명에서 매개 변수를 찾으십시오)
0
A
답변
3
콜백 함수와 함께 유용합니다.
void onChange (int trackpos , void *userdata);
예를 들어 (의 주소)를 전달할 수 있습니다. 그것에 N 이미지 :
Mat img; // e.g from a webcam
int b=3; // blur value
namedWindow("win");
createTrackBar("blur","win", &b, 100, onChange, (void*)(&img));
및 콜백 내에서 사용 :
void onChange (int trackpos , void *userdata)
{
Mat img = *((Mat*)userdata); // 1st cast, then deref
Mat b2;
blur(img,b2, Size(trackpos,trackpos));
imshow("win",b2);
waitKey(10);
}
+0
고마워요. 콜백 함수에서 참조를 취소하기 전에 입력하지 않았습니다. 그 때문에 개념을 잘못 이해했습니다. 정보를 제공해 주셔서 감사합니다. – user3578340
+0
아, 그래. 일반적인 함정;) – berak
참조는 이것에 대해 매우 분명하다 - http://docs.opencv.org/modules/highgui/doc/user_interface .html? highlight = createtrackbar # int createTrackbar (const string & trackbarname, const string & winname, int * value, int count, TrackbarCallback onChange, void * userdata) 다음에 물어보기 전에 미리 읽어보십시오. ... – MByD
나는 의심이 있습니다. 그 특정 매개 변수에서. 참조를 취소 한 후에 내 가치를 되 찾을 수 없었습니다. 그것이 내가 질문을 제기 한 이유입니다. 의견에 감사드립니다. – user3578340