Консольная спектрограмма фото/видео кадра (С++)

7 000 руб. за проект
10 января 2023, 14:24 • 7 откликов • 33 просмотра
Необходимо разработать консольную программу, которая выводит, в текстовом режиме, данные по имеющимся цветам в каждом кадре видео или картинке. Ни чего отрисовывать в консоли не нужно, просто строки цифр с данными о цвете.

Этапы работы программы:

1. Запускаем в консоли с аргументом -p (путь до видео/фото файла.)
для видео
./spec -p /path_to_video/my_3sec_video.mp4
для фото
./spec -p /path_to_photo/my_photo.png

2. На каждый кадр вывести в консоль информацию, в текстовом режиме, о порядковом номер кадра, какие цвета и сколько пикселей, каждый цвет занимает в данном кадре.

Кадр состоит из многих цветов и их оттенков, соответственно нужна информация о том, сколько в каждом кадре пикселей красного, красно-белого, светло-красного и т.п. Таким образом при анализе видео длительностью ровно 3 секунды, в консоли должно быть 72 строки с результатами.

Аналогично и для фото, но понятно, что для фото будет только одна строка с данными.

3. Каждая строка должна иметь следующий вид информации (пример результат работы программы);
--> ./spec -p /path_to_video/my_3sec_video.mp4
--> [1] { #ffffff, 123 }, { #630b0b, 4593 }, { #1877bf, 27 }
--> [2] { #f30b0, 17 }, { #630b0b, 453 }, { #1877bf, 245 }, { #645b0b, 4593 }, { #fg77bf, 27 }, { #ffffff, 334 }
... и т.д.
Где:
[1] [2] - порядковые номера кадров.
#f30b0 ... - цвет в соответствующем формате.
123, 17 ... - кол-во занимаемых данным цветом пикселей.

Т.е. в первом кадре, цвет #ffffff, содержится в 123 пикселях этого кадра.
А во втором кадре, , цвет #ffffff, содержится в 334 пикселях этого кадра.

Обязательные условия:
Только С++
Не использовать Qt
Можно использовать любую библиотеку с github по анализу картинок и видео реализованную на С++.
Стандар использования плюсов: любой
Не нужно делать проверок на то, что это файл, что он там есть, что это картинка и т.п.
Система сборки: любая вами используемая.

В помощь:
Для тэста можно использовать полностью белое или пополам разделенное белое с черным изображение.
Соответственно, вывод в первом случае, должен быть из одного результата
--> [1] { #ffffff, 400 }
Во втором случае
--> [1] { #ffffff, 200 }, { #000000, 200 }
Отзывы
R50 33e2af68bd29324b45470570538ec96c
Заказчик
Все вовремя и в срок. Учтены все пожелания и инструменты для работы. Было приятно работать!
1 год назад
 
1 год назад