Маска / нулевая область вне указанной области интереса
Я работаю над проектом, использующим OpenCV для сопоставления с шаблоном, и я хочу ограничить область поиска на изображении. Изображение непрерывно захватывается с камеры.
Есть ли способ обнулить / замаскировать изображение вне определенной области интереса, чтобы процесс сопоставления с шаблоном мог быть специфичным для оставшегося региона, быстрее и точнее?
2 ответа
Посмотрите на функцию cvSetImageROI.
void cvSetImageROI(IplImage* image, CvRect rect)
Устанавливает область интереса изображения (ROI) для данного прямоугольника. Параметры:
- изображение - указатель на заголовок изображения
- rect - прямоугольник ROI
Если ROI исходного изображения было NULL и прямоугольник не является целым изображением, структура ROI выделяется.
Большинство функций OpenCV поддерживают использование ROI и рассматривают прямоугольник изображения как отдельное изображение. Например, все координаты пикселей отсчитываются от верхнего левого (или нижнего левого) угла области интереса, а не от исходного изображения.
В этом блоге есть несколько примеров того, как использовать ROI featrue.
Вы используете cvSetImageROI, чтобы установить область интереса. Функции сопоставления шаблонов используют только установленную вами область интереса (и игнорируют все, что находится за ее пределами)