开发者

C++ Image Processing Libraries [closed]

Closed. This question does not meet Stack Overflow guidelines.开发者_JAVA百科 It is not currently accepting answers.

We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.

Closed 2 years ago.

Improve this question

I am looking for a C++ library for image processing. I need the library to threshold a PPM photo (color photo). Should I write my own code? what do you guys think?


Magick++ might help. It's the library version of ImageMagick.


You could use Boost GIL library. It's extremely powerful and versatile and may actually suit all your needs (well, yep, it's boost :).


All of the above options should be able to do what you required.

I would like to add OpenCV to the list. It's a fast cross-platform computer vision library with extensive image loading, saving and processing support. It's written in C, but it has a solid C++ interface, which I have used in the past.

That being said: Reading / writing PPMs is straight-forward, so if all you need is to read and threshold, you should definitely consider doing it yourself. It would come down to reading the PPM bytes into memory, greyscaling by averaging the RGB color channels (note that averaging the RGB channels is one, very simple, method to greyscale; there are more), then thresholding and writing away.


The Simd Library The is a free open source image processing library, designed for C and C++ programmers. It provides many useful high performance algorithms for image processing such as: pixel format conversion, image scaling and filtration, extraction of statistic information from images, motion detection, object detection (HAAR and LBP classifier cascades) and classification, neural network.

The algorithms are optimized with using of different SIMD CPU extensions. In particular the library supports following CPU extensions: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX-512 for x86/x64, VMX(Altivec) and VSX(Power7) for PowerPC, NEON for ARM.

The Simd Library has C API and also contains useful C++ classes and functions to facilitate access to C API. The library supports dynamic and static linking, 32-bit and 64-bit Windows and Linux, MSVS, G++ and Clang compilers, MSVS project and CMake build systems.

P.S. I participate in the development of this project.


The CImg Library is a popular choice too. It is really simple to use, lightweight and already have a lot of basic and advanced image processing operators implemented.


Very good library is GD2

This library has multiple languages bindings, including C (which is compatible with C++ of course). It is easy to build GD as a static or dynamic library with actually any C++ compiler, including GCC and Visual C++, also pre-built binaries are available over Internet. Unlike Boost image library, it allows to load/save images from/to memory and not hard drive only.


I would like to add VIPS to the list. The library is particularly suitable for machines with many CPUs. For a comparison, see the benchmarks here.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜