OpenCV getMinFilter_GPU - PullRequest
       9

OpenCV getMinFilter_GPU

0 голосов
/ 11 октября 2011

Метод getMinFilter принимает (int, int, cvSize), как OpenCv ожидает, что я передам 2D-изображение в int?

srcType - тип входного изображения.Поддерживаются только CV_8UC1 и CV_8UC4.

dstType - Тип выходного изображения.Он поддерживает только тот же тип, что и тип источника.

gpu::getMinFilter_GPU(int srcType, int dstType, const Size& ksize, Point anchor=Point(-1,-1))

Спасибо

1 Ответ

1 голос
/ 11 октября 2011

На самом деле функция getMinFilter_GPU не выполняет никакой фильтрации.Он просто возвращает специальный объект «процессор», который может выполнять фильтрацию.

Удобный способ использования функций фильтрации GPU в OpenCV:

  • Создание объекта фильтра (возвращается getMinFilter_GPU и многие другие функции);
  • Создание объекта движка (например, с createFilter2D_GPU);
  • Сохранение полученного указателя в контексте обработки вашего изображения (вы потеряете всю производительность при повторном создании)объект двигателя / фильтров для каждого кадра);
  • Для каждого вызова входного кадра применяется метод объекта двигателя для выполнения фильтрации.

Т.е.:

 GpuMat src, dst;
 Ptr<FilterEngine_GPU> filter = createFilter2D_GPU(
     getMinFilter_GPU(CV_8UC1, CV_8UC1, Size(3,3)), CV_8UC1, CV_8UC1);
 filter->apply(src, dst);
...