Как определить формат изображения / кодировку при использовании imc в opencv - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь написать простую программу обнаружения объектов на C ++, основанную на OpenCV, для использования в цепочке инструментов в стиле конвейера Unix, что означает, что считываемое изображение принимается через stdin, а обработанное изображение выводится вstdout.

В настоящее время я использую функцию imread OpenCV для чтения изображения из потока stdin, который сам по себе работает нормально, однако мне нужно каким-то образом знать формат изображения, читаемого ввыходное изображение программы может быть закодировано соответствующим образом.

Мне известно, что после считывания изображения в OpenCV Mat оно автоматически декодируется - поэтому мне нужно найти способ определить формат изображения оригинала.изображение заранее.

Пока что я мог только придумать способ обхода, который сначала считывает изображение в буфер, а затем использует магический файл из команды file для поиска файла.введите и в дальнейшем передайте буферизованные данные в OpenCV.

Признание того, что тесты производительности не проводились, я вполне уверен, чтоЭто очень медленный способ добиться этого, как я полагаю, OpenCV выполняет нечто подобное внутри при декодировании изображения, поэтому обнаружение формата дважды должно быть медленнее, чем определение формата только один раз.

Есть ли какой-нибудь более изощренный способ достижения этой цели или же можно получить доступ к исходной кодировке изображений (предпочтительно!) через OpenCV любым способом, который я мог бы пропустить?

Заранее спасибо!

...