Я пытаюсь вычислить время, которое моя программа берет, чтобы обнаружить ключевые точки из изображения. Если в моей программе на C++ я делаю это два раза (с одним и тем же изображением), между ними существует огромная разница. Первый раз он использует около 600-800 мс, а во второй раз всего 100-200 мс.OpenCV вычисляет функции обнаружения времени
Кто-нибудь знает, что происходит?
Вот код, где я получаю раз:
struct timeval t1, t2;
Ptr<SURF> detector = SURF::create(400);
gettimeofday(&t1, 0x0);
detector->detect(imagen1, keypoints_1);
gettimeofday(&t2, 0x0);
int milliSeconds = Utils::calculateDiff(t1, t2);
Вот код, где я могу вычислить дифференциал:
static int calculateDiff(timeval t1, timeval t2)
{
return (t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec)/1000;
}
Вот пример:
при создании 2-го изображения с идентичной пиксельной информации: 'резюме :: Mat imagen2 = imagen1.clone(),' это будет необходимо '100-200 ms' или '600-800 ms' обнаружить? Не уверен, что openCV запоминает «интегральные изображения», вычисленные SURF-Detector, до тех пор, пока входное изображение не будет освобождено или что-то в этом роде ... – Micka
Для этого требуется 100-200 мс. Мои шаги: 1. Клонировать изображение 2. Обнаруживать функции с первого изображения (600-800 мс). 3. Обнаруживать функции из копии (100-200 мс) – DavidGSola
, а что об обнаружении в совершенно другом изображении (того же размера) после обнаружения в первое изображение? – Micka