Я хочу определить продолжительность времени обнаружения лица.Последовательность процессов выглядит примерно так:
- Обнаружено лицо -> секундомер запускается
- Лицо исчезает (не обнаружено) -> паузы секундомера
- Обнаружено лицоснова (с тем же лицом) -> секундомер возобновляется
Однако моя проблема в том, что мне удается выполнить первые два процесса, но когда секундомер возобновляется, время не начинается с предыдущеговремя паузыНапример:
- Секундомер запускается и работает до 5 секунд
- Лицо исчезает на 5 секунд и секундомер останавливается
Лицо снова определяется, но секундомервозобновляется через 11 секунд, а не через 6 секунд
for (int i = 0; i < faces.Length; i++)
{
var face = faces[i];
videoFrame.Draw(face, new Bgr(255, 255, 255), 2);
Image<Bgr, Byte> grayFrameTemp = videoFrame.GetSubRect(faces[i]);
//resize image
Image<Gray, Byte> graySubFace = grayFrame.GetSubRect(faces[i]);
Image<Gray, Byte> graySubFaceCrop = graySubFace.Resize(100, 100, Inter.Cubic);
Image<Bgr, Byte> frame_resize = videoFrame.Resize(100, 100, Inter.Cubic);
//Start the stopwatch whenever the face is detected
SW_Start();
}
public static void SW_Start()
{
Stopwatch sW = new Stopwatch();
sW.Start();
//Thread.Sleep(1000); //1 second
//sW.Stop();
TimeSpan ts = sW.Elapsed;
elapsedTime = string.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
}
Примечание *: Использование Thread.Sleep (1000) и sw.Stop () может решить мою проблему, но это вызывает значительное отставание в моейпрограмма.Пожалуйста, помогите