Flow graph

Реализовать с использованием графовой модели вычислений следующую задачу, разбив её на чати и обеспечив максимальную потенциальную утилизацию ресурсов (изображение == матрица MxN):

На вход подаются генерированные случайным образом изображения

Различные алгоритмы ищут || на изображении:

Набор максимальных элементов (максимальная яркость)

Набор минимальных элементов (минимальная яркость)

Набор элементов, равных заданному в командной строке значению (0-255)

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

Результат предудущего шага передаётся на:

Расчёт обратного изображения (инверсия яркости)

Расчёт средней яркости изображения

Результат расчёта средней яркости выводится в файл в произвольном формате, если указан соответствующий флаг запуска приолжения

Результат расчёта обратного изображения никуда не идёт

Предполагается использовать:

broadcast_node

join_node

function_node

limiter_node

…

Приложение принимает в качестве параметров:

“-b 123”: интересующее значение яркости, для шага № 2

“-l 5”: предел одновременно обрабатываемых приложением изображений

“-f log.txt”: имя файла журнала яркостей

Адекватные модификации задания (периодический вывод текущего изображения в консоль после расчёта обратного, работа с реальными изображениями и более реальными операциями…) допускаются. При наличии у студента задач, подходящих для применения flow graph - по согласованию через почту можно реализовать их вместо стандартного задания.

Оганичения на язык: имеющий framework, поддерживающий графовую модель вычислений, аналогичную Intel TBB Flow Graph