bool updateModule() { if (ImageOf<PixelRgb> *iImg=iPort.read()) { LockGuard lg(mutex); ImageOf<PixelRgb> &oImg=oPort.prepare(); oImg=*iImg; cv::Mat frame=cv::cvarrToMat((IplImage*)oImg.getIplImage()); cv::Rect2d result; if (state==init) { tracker=cv::Tracker::create("BOOSTING"); tracker->init(frame,initRect); result=initRect; state=run; } else if (state==run) tracker->update(frame,result); if (state!=idle) cv::rectangle(frame, cv::Point((int)result.x,(int)result.y), cv::Point((int)(result.x+result.width),(int)(result.y+result.height)), cv::Scalar(0,255,0),2); oPort.write(); } return true; }