OpenCV G-API findContours: передать результат в ядро?

#c #opencv #contour

#c #opencv #контур

Вопрос:

OpenCV G-API определяет gapi::findCountours результат как GArray<GArray<Point>> . Достаточно справедливо. Итак, как мне передать это в ядро? G-API распаковывает только внешнюю GArray часть, в которую она переводится std::vector . Как мне заставить его распаковать GArray на следующем уровне шаблона, чтобы я мог получить желаемое std::vector<std::vector<Point>> ?

Ответ №1:

Вам не нужно распаковывать GArray<GArray<Point>> вручную.

Если вы хотите передать это пользовательскому ядру, оно должно быть принято GArray<GArray<Point>> в качестве входных данных.

Если распаковка сложных G-типов не происходит сама по себе, это может быть ошибкой. Недавно вы могли столкнуться с таким, если бы попытались написать пользовательское ядро с GArray<GArray<Point>> вводом as. Теперь это исправлено в OpenCV v4.5.2, и все благодаря вам! PRs объединены: исправлена ошибка преобразования входных данных ядра, исправлена ошибка прохождения GArray через график.