| 500 | } |
| 501 | |
| 502 | void CViacamController::ProcessImage (IplImage *pImage) |
| 503 | { |
| 504 | WViacam::EFPSCondition cond; |
| 505 | long iFrameRate; |
| 506 | float vx, vy; |
| 507 | CIplImage image(pImage); |
| 508 | bool allowedByFaceLocalizationSystem; |
| 509 | |
| 510 | // Refresh fps meter |
| 511 | m_frameRate= 0.5f * m_pCamera->GetRealFrameRate() + 0.5f * m_frameRate; |
| 512 | iFrameRate= (long) (m_frameRate + 0.5f); |
| 513 | if (iFrameRate< 20) |
| 514 | cond= WViacam::POOR; |
| 515 | else if (iFrameRate< 25) |
| 516 | cond= WViacam::FAIR; |
| 517 | else |
| 518 | cond= WViacam::GOOD; |
| 519 | m_pMainWindow->SetFPS (iFrameRate, cond); |
| 520 | |
| 521 | // Proces frame |
| 522 | allowedByFaceLocalizationSystem = m_visionPipeline.ProcessImage (image, vx, vy); |
| 523 | |
| 524 | if ((m_enabled && allowedByFaceLocalizationSystem) || m_motionCalibrationEnabled) { |
| 525 | // Send mouse motion |
| 526 | BEGIN_GUI_CALL_MUTEX() |
| 527 | if (m_motionCalibrationEnabled) |
| 528 | m_pMotionCalibration->ComputeMotionRange (-vx, vy, !(m_visionPipeline.GetTrackFace() && !m_visionPipeline.IsFaceDetected())); |
| 529 | else |
| 530 | m_pointerAction->ProcessMotion (-vx, vy); |
| 531 | END_GUI_CALL_MUTEX() |
| 532 | } |
| 533 | |
| 534 | |
| 535 | m_hotKeyManager->CheckKeyboardStatus(); |
| 536 | } |
| 537 | |
| 538 | bool CViacamController::StartMotionCalibration (void) |
| 539 | { |
nothing calls this directly
no test coverage detected