Функция масштабирования OpenCV C ++ - PullRequest
0 голосов
/ 03 октября 2019

Я использую IP-камеру для обнаружения людей с использованием OpenCV dnn и C ++, мне нужно реализовать функцию масштабирования для обнаружения людей на расстоянии более 10 метров, но я обнаружил, что выполнять масштабирование живого видео с использованием c ++ не существует (поправьте меня, если я ошибаюсь).

Я использовал следующий код для увеличения моего видео:

cv::Mat src, dst, tmp;
tmp = src;
dst = tmp;
pyrUp(tmp, dst, cv::Size(tmp.cols * 2, tmp.rows * 2));
frame.image = dst;

Но, Image Pyramids не увеличил мое видео.

Не могли бы вы помочь мне с функцией масштабирования для достижения моей цели.

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Программный зум обычно вызывается для выбора области изображения (ROI). Вы должны выбрать соответствующий прямоугольник ROI.

int width = 750;
int height = 750;
cv::Rect roi(x, y, width, height);
cv::Mat dst = src(roi);
0 голосов
/ 03 октября 2019

Если вы хотите прореживать изображение с коэффициентом 2 в каждом направлении, вы можете вызвать функцию следующим образом: // указать fx и fy и позволить функции вычислить размер изображения назначения.

resize(src, dst, Size(), 0.5, 0.5, interpolation);
...