C++ библиотеки обработки изображений
Я ищу библиотеку C++ для обработки изображений. Мне нужна библиотека, чтобы порог фото PPM (цветное фото). Должен ли я написать свой собственный код? Что, вы парни, думаете?
7 ответов
Все вышеперечисленные варианты должны быть в состоянии сделать то, что вам нужно.
Я хотел бы добавить OpenCV в список. Это быстрая кроссплатформенная библиотека компьютерного зрения с обширной поддержкой загрузки, сохранения и обработки изображений. Он написан на C, но имеет прочный интерфейс C++, который я использовал в прошлом.
При этом: чтение / запись PPM просты, поэтому, если все, что вам нужно, это чтение и пороговое значение, вам определенно следует рассмотреть возможность сделать это самостоятельно. Все сводится к чтению байтов PPM в память, масштабированию в оттенках серого путем усреднения цветовых каналов RGB (обратите внимание, что усреднение каналов RGB - это один, очень простой, метод для оттенков серого; их больше), затем пороговое значение и запись.
Вы можете использовать библиотеку Boost GIL. Это чрезвычайно мощный и универсальный и может действительно удовлетворить все ваши потребности (ну да, это повышение:).
Библиотека Simd Это бесплатная библиотека обработки изображений с открытым исходным кодом, разработанная для программистов на C и C++. Он предоставляет много полезных высокопроизводительных алгоритмов для обработки изображений, таких как: преобразование формата пикселей, масштабирование и фильтрация изображений, извлечение статистической информации из изображений, обнаружение движения, обнаружение объектов (каскады классификаторов HAAR и LBP) и классификация, нейронная сеть.
Алгоритмы оптимизированы с использованием различных расширений ЦП SIMD. В частности, библиотека поддерживает следующие расширения ЦП: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 и AVX-512 для x86/x64, VMX(Altivec) и VSX(Power7) для PowerPC, NEON для АРМ.
Библиотека Simd имеет C API, а также содержит полезные классы и функции C++ для облегчения доступа к C API. Библиотека поддерживает динамическое и статическое связывание, 32-битные и 64-битные компиляторы Windows и Linux, MSVS, G++ и Clang, проекты MSVS и системы сборки CMake.
PS Я участвую в разработке этого проекта.
Библиотека CImg также является популярным выбором. Он действительно прост в использовании, легок и уже имеет множество базовых и продвинутых операторов обработки изображений.
Очень хорошая библиотека GD2
Эта библиотека имеет привязку к нескольким языкам, включая C (который, конечно, совместим с C++). Легко построить GD как статическую или динамическую библиотеку практически с любым компилятором C++, включая GCC и Visual C++, а также готовые двоичные файлы доступны через Интернет. В отличие от библиотеки изображений Boost, она позволяет загружать / сохранять изображения из / в память, а не только на жесткий диск.