Я строю конвейер обработки изображений с использованием OpenCV3 и TBB.
При передаче изображения в потоковом графике оно изменяется.
Вот пример результата изображения при прохождении через обратный фильтр:
Я написал модульный тест, который пропускает изображения через график и сравнивает результат с исходным изображением:
https://gist.github.com/des0ps/74528673d271e3131c2ea2a2adaf5c8c
Этот тест иногда проходит, а иногда нет.
Что здесь происходит и вообще говоря, поддерживаются ли cv :: Mat TBB?
Кажется, что тест не гарантирует, что проверяемые изображения являются соответствующими изображениями,
т.е. левое изображение имеет тот же порядковый номер, что и правое. Это возможно, так как там
Нет ограничений на скорость прохождения изображений через график. Попробуй использовать
Политика буферизации ‘key_matching’ для join_node
,
Кстати, TBB — это библиотека шаблонов. Это означает, что его структуры и алгоритмы могут быть
создается с любым типом, указанным в качестве аргумента для параметра шаблона (конечно, если это
тип удовлетворяет требованиям рассматриваемой структуры / алгоритма). Например, source_node
требует, чтобы его тип вывода был DefaultConstructible, то есть его экземпляры создаются
вызывающий класс конструктор по умолчанию. Такие требования автоматически проверяются компилятором.
Других решений пока нет …