stereo matching을 확인하면서, C source style은 track bar를 쉽게 사용할 수 있다.


하지만 C++ source style을 적용하면 문제 되는게 있다. 일단 아래의 source를 보자.


위와 같은 소스를 실행하면, error C3867: 'BM::OnPreFilterSize' : 함수 호출에 인수 목록이 없습니다. '&BM::OnPreFilterSize'을 사용하여 멤버에 대한 포인터를 만드십시오. 라는 error메세지가 나올것이다. 또한 cvCreateBrackbar에서 OnPreFilterSize의 형은 CvTrackbarCallback라는 것을 명심하자.


이에 해결 방법은 다음과 같이 선언하면 된다.

위의 source와 같이 추가하면, 위에 언급한 'error C3867'문제를 해결할 수 있다.


여기서, 추가적으로 OnPreFilterSize에서 class의 멤버 변수를 변경 할 수 없다.


여러가지 방법이 있겠지만, 내가 오늘 알게 된 것은 다음과 같다.

위와 같이 추가적으로 선언해주면, static function에서도 멤버 변수를 변경 할 수 있다.





+ Recent posts