вф1 0 Жалоба Опубликовано October 10, 2011 насколько я понял за его перерисовку отвечает track_box, так вот как сделать чтобы он был постоянный Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 10, 2011 Если посмотреть на пример из OpenCV camshiftdemo.cpp, то в нём есть строка:RotatedRect trackBox = CamShift(backproj, trackWindow, TermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 )); Вместо неё пишешь: Rect tmp_trackWindow(trackWindow); RotatedRect trackBox = CamShift(backproj, trackWindow, TermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 )); trackWindow.x = (trackWindow.x + trackWindow.width - tmp_trackWindow.width) / 2; trackWindow.width = tmp_trackWindow.width; trackWindow.y = (trackWindow.y + trackWindow.height - tmp_trackWindow.height) / 2; trackWindow.height = tmp_trackWindow.height; И всё, вроде, работает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
quosego 5 Жалоба Опубликовано October 11, 2011 функция meanShift(InputArray probImage, Rect& window, TermCriteria criteria) работает так же как и CamShift, но размер Rect не меняет Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах