Найдите, падает ли текущее время в диапазоне времени

Сначала необходимо найти глаза! Стандартный путь состоял бы в том, чтобы выполнить граничный детектор, и затем Hough преобразовывает для нахождения двух кругов того же размера, но могли бы быть более легкие алгоритмы для того, чтобы просто найти кластеры красных пикселей.

Тогда необходимо решить, что заменить их, предположив, что существует достаточно зеленых/синих данных в изображении, Вы могли просто проигнорировать красный канал.

OpenCV является очень хорошей свободной библиотекой для обработки изображений, это могло бы быть излишество для того, что Вы хотите - но имеет много примеров и очень активного сообщества. Вы могли также искать алгоритмы отслеживания объекта, отслеживание цветного объекта в сцене очень similair и типичная проблема.

131
задан John Saunders 27 February 2014 в 19:20
поделиться

5 ответов

Для проверки времени суток используйте:

TimeSpan start = new TimeSpan(10, 0, 0); //10 o'clock
TimeSpan end = new TimeSpan(12, 0, 0); //12 o'clock
TimeSpan now = DateTime.Now.TimeOfDay;

if ((now > start) && (now < end))
{
   //match found
}

Для абсолютного времени используйте:

DateTime start = new DateTime(2009, 12, 9, 10, 0, 0)); //10 o'clock
DateTime end = new DateTime(2009, 12, 10, 12, 0, 0)); //12 o'clock
DateTime now = DateTime.Now;

if ((now > start) && (now < end))
{
   //match found
}
236
ответ дан 24 November 2019 в 00:14
поделиться

Свойство TimeOfDay возвращает значение TimeSpan .

Попробуйте следующий код:

TimeSpan time = DateTime.Now.TimeOfDay;

if (time > new TimeSpan(11, 59, 00)        //Hours, Minutes, Seconds
 && time < new TimeSpan(13, 01, 00)) {
    //match found
}

Кроме того, новый DateTime () совпадает с DateTime.MinValue и всегда будет равняться 1/1/0001 12:00:00 AM . (Типы значений не могут иметь непустые значения по умолчанию) Вы хотите использовать DateTime.Now .

6
ответ дан 24 November 2019 в 00:14
поделиться
if (new TimeSpan(11,59,0) <= currentTime.TimeOfDay && new TimeSpan(13,01,0) >=  currentTime.TimeOfDay)
{
   //match found
}

если вы действительно хотите преобразовать строку в TimeSpan, вы можете использовать:

    TimeSpan start = TimeSpan.Parse("11:59");
    TimeSpan end = TimeSpan.Parse("13:01");
17
ответ дан 24 November 2019 в 00:14
поделиться

Вы очень близки, проблема в том, что вы сравниваете DateTime с TimeOfDay. Что вам нужно сделать, так это добавить свойство .TimeOfDay в конец ваших функций Convert.ToDateTime ().

2
ответ дан 24 November 2019 в 00:14
поделиться

Try using the TimeRange object in C# to complete your goal.

TimeRange timeRange = new TimeRange();
timeRange = TimeRange.Parse("13:00-14:00");

bool IsNowInTheRange = timeRange.IsIn(DateTime.Now.TimeOfDay);
Console.Write(IsNowInTheRange);

Here is where I got that example of using TimeRange

13
ответ дан 24 November 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: