//&track_comp, &track_box ); cvMeanShift( backproject, track_window, cvTermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 ),
&track_comp ); track_window = track_comp.rect;
if( backproject_mode )
cvCvtColor( backproject, image, CV_GRAY2BGR ); // 使用backproject灰度图像
// if( image->origin )
//track_box.angle = -track_box.angle; cvRectangle( image , cvPoint(track_window.x,track_window.y),cvPoint(track_window.x+track_window.width,track_window.y+track_window.height) , CV_RGB(255,0,0),
1, 8, 0 ); dx=track_window.x + track_window.width/2 - image->width/2; dy=track_window.y+track_window.height/2 - image->height/2; //printf(\ dx = %d, dy = %d\ data=dy+0x400+0x200; //TBL: 偏移量 0x200 wdata=dx+0x800+0x200; //wTBL: 偏移量 0x200 m_Com.WriteData(& wdata,2); m_Com.WriteData(& data,2); }
if( select_object && selection.width > 0 && selection.height > 0 ) {
cvSetImageROI( image, selection );
cvXorS( image, cvScalarAll(255), image, 0 ); cvResetImageROI( image ); }
cvShowImage( \ cvShowImage( \
c = cvWaitKey(10); if( c == 27 )
break; // exit from for-loop switch( c ) {
case 'b':
backproject_mode ^= 1; break;
case 'c':
track_object = 0; cvZero( histimg ); break; case 'h':
show_hist ^= 1; if( !show_hist )
cvDestroyWindow( \ else
cvNamedWindow( \ break; default: ; } }
cvReleaseCapture( &capture );
cvDestroyWindow(\ m_Com.Close();
return 0; }